【发布时间】:2017-03-10 15:48:18
【问题描述】:
在我的 python 代码的最后一行(打印语句)之后,我收到以下错误:
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
有人知道这可能来自哪里吗?
更新:我的 python 代码非常长,但我将发布可能与此错误有关的部分:
首先,在流程开始时,我将 stdout 和 stderr 重定向到这样的日志文件:
so = se = open(logfile, 'w', 0)
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
虽然我一直这样做,但从未遇到此错误,但这似乎是我看到此错误的最可能原因。
【问题讨论】:
-
调用程序时出现错误(
stderr)流怎么办? -
您是否正在导入您自己编写的名为
sys的模块? -
我认为错误可能来自您的代码,但由于您没有向我们展示任何内容,因此世界可能永远不会知道。
-
@jwodder 哈哈,代码超长,我不知道哪些部分与此错误相关,所以我没有发布任何内容
-
验证您发布的部分实际上足以重现问题。有关创建M初始、C完整、V可验证E示例的规则,请参阅stackoverflow.com/help/mcve。是的,这意味着在提出问题之前您需要自己做一些工作。