使用os.execl重启脚本后的Python EOFError

时间:2015-08-04 12:41:25

标签: python python-3.x os.execl

我有一个执行以下操作的脚本;

  • 检查工作目录中是否存在temp.txt文件。
    • 如果存在,则删除temp.txt文件和update.pyd文件。
  • 检查工作目录中是否存在update.pyd模块。
    • 如果存在,则导入并运行它。
    • 更新过程在工作目录中创建一个temp.txt文件。
    • 更新后,使用os.execl(sys.executable, sys.executable, *sys.argv)
    • 重新启动脚本

但是在调用os.execl(sys.executable, sys.executable, *sys.argv)时我一直收到错误:

Traceback (most recent call last):
  File "<string>", line 73, in execInThread
  File "<string>", line 44, in __call__
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\netref.py", line 196, in __call__
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\netref.py", line 71, in syncreq
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 431, in sync_request
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 379, in serve
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\protocol.py", line 337, in _recv
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\channel.py", line 50, in recv
  File "C:\Program Files (x86)\PyScripter\Lib\rpyc.zip\rpyc\core\stream.py", line 166, in read
EOFError: [WinError 10054] An existing connection was forcibly closed by the remote host

我在同一个脚本中有另一个处理类似的进程,并使用os.execl(sys.executable, sys.executable, *sys.argv)重新启动,但干净地重新启动。

有人能告诉我为什么会这样吗?引用错误的“连接”是什么,如何在重新启动之前将其关闭?感谢

0 个答案:

没有答案