pyenv 在执行所述模块时在终端中打印模块

pyenv prints module in terminal when executing said module

我在 运行 python 时转而使用 pyenv。但问题是当我执行一个模块并且该模块导入其他模块时 pyenv 通常会打印出一大块对我来说是乱码的内容。例如,

alias py37="pyenv local 3.7.3 && python"


Admins-MacBook-Pro-4:general kylefoley$ py37
Python 3.7.3 (default, Oct 16 2019, 03:01:07) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyboard
bool b'B' <classmethod object at 0x10a7317f0> <function ivar.bool at 0x10bf8b8c8>
char b'c' <classmethod object at 0x10a731898> <function ivar.char at 0x10bf8b950>
int b'i' <classmethod object at 0x10a763160> <function ivar.int at 0x10bf8b9d8>
short b's' <classmethod object at 0x10a776b70> <function ivar.short at 0x10bf8ba60>
long b'l' <classmethod object at 0x10a781cc0> <function ivar.long at 0x10bf8bae8>
long_long b'q' <classmethod object at 0x10b819f98> <function ivar.long_long at 0x10bf8bb70>

如您所见,当我导入模块时 keyboard 我得到了很多不需要的输出。 pyenv 经常发生这种情况。怎么回事?

在 pyobjc 6.0 中不小心留下了调试打印语句。这将在版本 6.0.1 中得到修复。 检查这个 issue and the commit 修复它。要解决这个问题,要么降级到 pyobjc 5.3,要么等待很快发布的修复程序并升级到 pyobjc 6.0.1。