【发布时间】:2017-10-14 17:25:38
【问题描述】:
我试图调试 abc.ABCMeta 的问题 - 特别是子类检查没有按预期工作,我想首先将 print 添加到 __subclasscheck__ 方法(我知道有调试代码的更好方法,但为了这个问题而假装没有其他选择)。但是,在之后启动 Python 时,Python 崩溃(如分段错误)并且我得到了这个异常:
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
File "C:\...\lib\io.py", line 84, in <module>
File "C:\...\lib\abc.py", line 158, in register
File "C:\...\lib\abc.py", line 196, in __subclasscheck__
RuntimeError: lost sys.stdout
因此,将print 放在那里并不是一个好主意。但是异常究竟是从哪里来的呢?我只改了 Python 代码,应该不会崩溃吧?
有人知道这个异常来自哪里以及我是否/如何避免它但仍然在abc.ABCMeta.__subclasscheck__ 方法中放置print?
我使用的是 Windows 10,Python-3.5(以防万一它可能很重要)。
【问题讨论】:
标签: python python-3.x cpython python-internals