我开始使用Python 3.3而不是2.7而且我用来重启或关闭程序的一些代码行存在问题。
def restart_program():
python = sys.executable
os.execl(python, python, * sys.argv)
if __name__ == "__main__":
answer = input("Restart or close program ")
if answer.strip() in "Restart restart".split():
restart_program()
当我使用它时,我收到以下错误:
Fatal Python error: PyEval_RestoreThread: NULL tstate
Current thread 0x00002030:
File "C:\Python33\lib\os.py", line 531 in execl
File "C:\Users\user\desktop\filename", line 66 in restart_program
第66行
os.execl(python, python, * sys.argv)
我不知道如何解决这个问题,我真的希望有人有解决方案。
如果我像下面的代码那样写一些非常简单的东西,那么它没有任何问题。
import math
import os
import sys
a = input ("enter a")
a = float (a)
b = 12
x = a+b
print (x)
def restart_program():
python = sys.executable
os.execl(python, python, * sys.argv)
if __name__ == "__main__":
answer = input("Restart or close the program ")
if answer.strip() in ["Restart", "restart"]:
restart_program()
我想我也可以在这里添加我的全部代码。
答案 0 :(得分:1)
尝试评论Popen
电话,看看是否有事情要清理。这真的不是一个打开文件的好方法,因为它只适用于Windows,并且只有你有png文件的文件关联集。
我敢打赌,Python 3在离开孤立的流处理程序或其他东西时不太容忍2,所以吹走父进程会导致孩子窒息。如果评论Popen
可以解决您的问题,请尝试跟踪您创建的所有子项,并在execl
调用之前明确删除它们。