我開始使用Python 3.3而不是2.7,並且我用一些代碼行來重新啓動或關閉程序。從Python 2.7到3.3之後,代碼不再起作用
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()
我想我也可以在這裏添加我的整個代碼。
你有沒有試過? http://docs.python.org/2/library/2to3.html –
Sooooo 66行是什麼? – djechlin
第66行是os.execl(python,python,* sys.argv)。我知道2to3,但我沒有弄清楚如何使用它。我在整個編程業務中都很新。 – user1901162