[英]PyInstaller .exe file does nothing
3天后,我无法将python程序打包成.exe文件。 我试过 py2exe(它不断错过模块)和 PyInstaller。
这是复杂的部分。 我的程序使用了许多额外安装的模块(coopr、pyomo、openpyxl、glpk、cbc、pyutilib、numpy 等)。 这些反过来又导入了各种其他东西,我无法追踪它(PyInstaller 警告日志列出了 676 行丢失或可能不需要的模块。)
但是,我得到了(通过将“缺失”模块的导入添加到我的程序中)一个 .exe 版本,它通过双击或从命令行运行,没有打印任何错误。
问题是,程序什么都不做。 我有一个包含在构建中的输入文件,我的程序读入该文件,进行一些(密集)计算,然后在同一目录中创建一个 .csv 输出文件。 它作为 .py 文件工作。 我的 .exe 什么也不做。
所以,如果你能告诉我出了什么问题,请继续。 如果没有,我想知道任何有用的步骤或想法可以尝试。 在这一点上,我已经用尽了可以从程序和文档中找到的反馈。
我只是为自己解决了这个问题。
确保您没有与您尝试转换为可执行文件的脚本同名的文件夹。
如果您已经有应用程序文件sample.py
以及文件夹sample
(例如包含您的其他 .py 文件)并且您希望应用程序保留名称sample
,您可以通过将sample.py
重命名为sample_app.py
来解决此问题sample_app.py
然后使用 --name 选项调用 pyinstaller 例如, pyinstaller --onefile --name sample sample_app.py
由 pyinstaller 创建的二进制文件将被称为sample
。
创建exe时,请确保python脚本包含
if __name__ == '__main__':
main()
在底部。 否则,python exe 将运行,但由于它没有什么可运行的,它将结束。
我也无法使 pyinstaller 正常工作,但是几年前我找到了一个在 Windows 上生成 R 脚本可执行文件的解决方案,所以我用 python 尝试了它并且它起作用了!
这是解决方案,仅在 CMD 中的 3 行中:
https://github.com/jorgeavilacartes/making-my-own-executable-python
您可以创建自己的扩展并将其分配给您希望的 python.exe(如果您有很多 venv,您可以为每个扩展创建一个可执行扩展)
不幸的是,我只有 Windows 的解决方案。
希望能帮助到你!
PD:小心不要在创建可执行文件的同一文件夹中包含任何.ipynb
,它无法正常运行,我不知道为什么,但这是我遇到的唯一问题。
当在 windows 中双击 exe 无法运行时,关联的窗口也会自动关闭。 如果发生这种情况,请打开命令提示符并尝试通过转到适当的路径并输入文件名(例如C:\\github\\program\\dist\\main.py
)来运行该 exe。 应用程序抛出的任何错误都将打印在命令提示符窗口中,而不会自动关闭。
如果您的脚本访问非 Python 文件,请移动可执行文件以便它可以找到它们。
我遇到了同样的问题。 对我来说,原因是我的一些 Python 文件需要访问非 Python 文件(在我的例子中是 gifs)。 PyInstaller 没有将资源与 Python 文件捆绑在一起,也没有将可执行文件与主 Python 文件放在同一目录中,因此当我的程序尝试访问它们时出现错误。 解决方案只是将资源复制到可执行文件正在寻找它们的位置,反之亦然。
出于某种原因,当我正常运行 PyInstaller 时,没有生成帮助我找到问题的错误消息。 它们仅在使用--onefile
标志时生成,即便如此,它们在提示关闭前只停留了不到半秒。 当消息出现时,我不得不使用ctrl + prt来捕获我的屏幕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.