使用pyinstaller添加外部exe文件



我有一个python程序,它使用多个文件,包括一个.exe程序,调用subprocess.run(myprogram.exe).

当我构建新的。exepyinstaller并尝试执行程序,它找不到myprogram.exe

我使用下面的语句:

pyinstaller -w -F --onefile .MyPythonProgram.py

myprogram.exeMyPythonProgram.py在同一个文件夹中。我应该为它做些什么来添加到.exe吗?

在我回答之前,请注意在将可执行文件捆绑到程序中,因为这涉及到版权、专利、法律等方面的问题。我知道OP的问题是针对他们自己的.exe的,但这条信息是给其他阅读这篇文章的人的。别问我这个,我不是律师。


除非将.exe复制到目标环境中,否则必须将其包含在pyinstaller的参数之一中。PyInstaller是伟大的,但它并不像你想象的那样聪明(例如,它不会扫描你的代码调用子进程,并自动尝试找到你的可执行依赖项)。

相反,你必须显式地告诉它包含外部依赖:

pyinstaller.exe --add-binary ".myprogram.exe;." --onefile .MyPythonProgram.py

下次,试着阅读他们的文档,因为你正在使用-F--onefile(它们都做同样的事情)。

这个GitHub问题帮助我回答了你的问题。它解释了为什么--add-binary的参数在引号中,以及;.部分在末尾的必要性。

注意:我已经排除了您的-w选项,以获得更清晰的答案

相关内容

  • 没有找到相关文章

最新更新