pyinstaller exe无法在分离模式下运行另一个pyinstaller

时间:2012-08-23 04:00:15

标签: python upgrade pyinstaller

我的程序由pyinstaller打包,在Windows上使用--onefile模式。一个用于主进程,一个用于工具包,我想在运行时更新它们。

我计划更新流程如下:

  • 当主进程执行启动时,检查是否有补丁文件。如果是,请将toolkit复制到update.exe,并在分离模式下启动“update.exe upgrade”。主进程快速退出并让update.exe完成其工作。
  • update.exe永远不在包中,因此它可以很好地完成替换作业。
  • 之后,update.exe启动主进程exe,也是分离模式。

我认为它应该有用,但程序不会启动另一个。

启动分离过程的代码:

subprocess.Popen(command, stdin=None, stdout=None, stderr=None, close_fds=True,
               creationflags=0x00000008)

代码在python脚本启动pyinstaller exe时起作用,并通过pyinstaller exe启动正常的程序,如memcached.exe。似乎只是由pyinstaller打包的程序无法启动另一个程序。

有没有办法解决它或其他更新解决方案

更新:   这是pyinstaller2.0中的一个错误,它已在最新的dev分支中修复。   http://www.pyinstaller.org/ticket/569

1 个答案:

答案 0 :(得分:2)

我在使用2.0版创建的两个PyInstaller应用程序时遇到了同样的错误(app1必须运行app2)

我尝试从app1运行os.system,subprocess.call和os.startfile来运行app2,所有这些都失败了,无法获取有关问题的信息。

最后,我使用PyInstaller 1.5.1重建app1并且可以运行app2(使用V 2.0构建)而没有问题。

我想将此错误报告给PyInstaller团队。