如何使用pyinstaller将包转换为exe



我有一个开源的python命令行程序,它在python 2.7、Python3+上运行,并且是跨平台的。

我正试图更容易地将它打包为可执行文件,供我的windows用户使用。这个包的来源在Github上,点击这里:https://github.com/stormpath/stormpath-cli

我正试图使用pyinstaller来打包我的Python程序,但遇到了问题。

我正在从Windows8盒子中运行以下命令:

$ pyinstaller --onefile setup.py

这成功地为我生成了一个EXE文件,但当我运行它时,我会收到以下错误:

Traceback (most recent call last):
File "setup.py", line 4, in <module>
File "c:python27Libsite-packagesPyInstallerloaderpyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "site-packagessetuptools__init__.py", line 160, in <module>
File "site-packagessetuptoolsmonkey.py", line 93, in patch_all
File "site-packagessetuptoolsmonkey.py", line 145, in patch_for_msvc_specialized_compiler
File "importlib__init__.py", line 37, in import_module
ImportError: No module named msvc
Failed to execute script setup

出于测试目的,为了帮助缩小问题范围,我创建了一个test.py脚本,其中包含以下代码:

print('hello, world!')

然后将其打包到一个exe中:

$ pyinstaller --onefile test.py

当我运行这个生成的exe时,一切都很好!Hello世界按预期输出。

我相信发生的事情是,我没有告诉pyinstaller如何正确地"检测"我的项目是一个python包,而不是一个单一的文件脚本。

我已经阅读了很多文档,并在谷歌上搜索过,但还没有找到一种方法来指定一个包供pyinstaller分析。

我错过了什么?

虽然我认为这是一件非常合理的事情,但PyInstaller似乎根本不支持从包(使用__main__.py)构建应用程序。

请参阅https://github.com/pyinstaller/pyinstaller/issues/2560.

作为一种变通方法,您可以编写一个小存根(在包之外),它可以做与__main__.py相同的事情。然后指向PyInstaller。

我想你忘了"pyinstaller-w--onefile test.py"。你忘了'-w'。

首先安装pyinstaller

pip install pyinstaller 

要创建exe可执行文件夹,只需运行以下命令:

pyinstaller exam_browser.py

如果你想要一个带有徽标的exe文件,请运行以下命令:

pyinstaller exam_browser.py --onefile -F --icon logo.ico

相关内容

  • 没有找到相关文章

最新更新