PyInstaller:单文件可执行文件不 运行
PyInstaller: Single-file executable doesn't run
我正在尝试使用 pyinstaller
.
从 Python 应用程序为 Windows 创建一个单文件可执行文件
我从 here (the file was python3.zip 下载了 Python 3 b运行ch 的 pyinstaller
,但是 link 现在已经死了)。我使用 python setup.py install
.
安装了它
然后我创建了一个名为test.py
的测试python脚本,内容如下:
print('Hello, World!')
之后,我运行下面的命令来创建一个单文件可执行文件:
pyinstaller --onefile test.py
命令成功,我确认文件dist/test.exe
已经生成。但是,当我尝试 运行 它时,我得到的只是一个空的控制台 window。什么都没有出现,程序永远不会终止。它永远挂在那里,直到我强行关闭它。
调用 pyinstaller test.py
(没有 --onefile
选项)工作正常。那么是什么问题呢?
请注意,使用 py2exe
或 cx_freeze
不是一个选项。必须是 pyinstaller
.
更新: 我刚刚在 Python 2(使用普通的 PyInstaller 版本)下测试了它,我 运行 遇到了同样的问题。所以,这不仅仅是一个 Python 3 问题。
我设法解决了这个问题。
我发现该程序确实 运行。但是,它在显示 Hello, World!
消息之前挂了很长时间(比如 5 分钟!)。
问题是由 UPX (Ultimate Packer for eXectutables) 引起的,该工具旨在减小可执行文件的大小。如果 PyInstaller 在系统上找到它,默认情况下使用 UPX。由于我仍然无法理解的原因,UPX 打包的可执行文件自解压花费了极长的时间并且 运行.
因此,只需 运行 将命令与 --noupx
选项结合使用即可解决问题。
pyinstaller --onefile --noupx test.py
作为旁注,将 --debug
选项添加到 pyinstaller
命令通常可以帮助识别此类问题。
我正在尝试使用 pyinstaller
.
我从 here (the file was python3.zip 下载了 Python 3 b运行ch 的 pyinstaller
,但是 link 现在已经死了)。我使用 python setup.py install
.
然后我创建了一个名为test.py
的测试python脚本,内容如下:
print('Hello, World!')
之后,我运行下面的命令来创建一个单文件可执行文件:
pyinstaller --onefile test.py
命令成功,我确认文件dist/test.exe
已经生成。但是,当我尝试 运行 它时,我得到的只是一个空的控制台 window。什么都没有出现,程序永远不会终止。它永远挂在那里,直到我强行关闭它。
调用 pyinstaller test.py
(没有 --onefile
选项)工作正常。那么是什么问题呢?
请注意,使用 py2exe
或 cx_freeze
不是一个选项。必须是 pyinstaller
.
更新: 我刚刚在 Python 2(使用普通的 PyInstaller 版本)下测试了它,我 运行 遇到了同样的问题。所以,这不仅仅是一个 Python 3 问题。
我设法解决了这个问题。
我发现该程序确实 运行。但是,它在显示 Hello, World!
消息之前挂了很长时间(比如 5 分钟!)。
问题是由 UPX (Ultimate Packer for eXectutables) 引起的,该工具旨在减小可执行文件的大小。如果 PyInstaller 在系统上找到它,默认情况下使用 UPX。由于我仍然无法理解的原因,UPX 打包的可执行文件自解压花费了极长的时间并且 运行.
因此,只需 运行 将命令与 --noupx
选项结合使用即可解决问题。
pyinstaller --onefile --noupx test.py
作为旁注,将 --debug
选项添加到 pyinstaller
命令通常可以帮助识别此类问题。