我在虚拟环境中安装了 Jupyter 和 Ipython。每当我在 IPython REPL 中输入内容并按 Enter 键时,输出前都会出现一堆重复的垃圾:
In [2]: print("Hello, world!")
line='print("Hello, world!")\n', last_line=b'', encoding=None
print
(
"Hello, world!"
)
line=b'', last_line='print("Hello, world!")\n', encoding=None
line='print("Hello, world!")\n', last_line=b'', encoding=None
print
(
"Hello, world!"
)
line=b'', last_line='print("Hello, world!")\n', encoding=None
line='print("Hello, world!")\n', last_line=b'', encoding=None
print
(
"Hello, world!"
)
line=b'', last_line='print("Hello, world!")\n', encoding=None
Hello, world!
In [3]: 2 + 2
line='2 + 2\n', last_line=b'', encoding=None
2
+
2
line=b'', last_line='2 + 2\n', encoding=None
line='2 + 2\n', last_line=b'', encoding=None
2
+
2
line=b'', last_line='2 + 2\n', encoding=None
line='2 + 2\n', last_line=b'', encoding=None
2
+
2
line=b'', last_line='2 + 2\n', encoding=None
line='2 + 2', last_line=b'', encoding=None
2
+
2
line='', last_line='2 + 2', encoding=None
Out[3]: 4
这种垃圾输出出现在终端中的 IPython REPL 和浏览器中的 Jupyter 笔记本中。我正在使用 Python 3.8.1 运行 Windows 10。软件包版本是:
这些是通过 Poetry 安装的。我在单独的 PC(运行 Linux)上安装了完全相同的 Python 和软件包版本,但没有出现问题,所以我怀疑我的 Windows PC 上配置有问题,而不是问题是 IPython 中的错误。
我如何让它再次正常打印?
最佳答案
有几个选项:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
... your code ...
print "something"
%pprint
命令打开或关闭 pretty-print 。logging.getLogger().setLevel(logging.CRITICAL)
另见:https://docs.python.org/3/library/logging.html
关于python - IPython 打印输出损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63077126/