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()
ここにコード全体を追加することもできると思います。