我试图调试一个与abc.ABCMeta
有关的问题,特别是一个子类检查没有按预期工作的问题,我想首先简单地在__subclasscheck__
方法中添加一个print
(我知道有更好的调试代码的方法,但为了这个问题,假装没有其他选择)。然而,当启动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(以防万一这很重要)。