6

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

我正在尝试更轻松地将其打包为我的 Windows 用户的可执行文件。这个包的源代码在 Github 上:https ://github.com/stormpath/stormpath-cli

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

我正在从 Windows 8 框中运行以下命令:

$ pyinstaller --onefile setup.py

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

Traceback (most recent call last):
  File "setup.py", line 4, in <module>
  File "c:\python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\setuptools\__init__.py", line 160, in <module>
  File "site-packages\setuptools\monkey.py", line 93, in patch_all
  File "site-packages\setuptools\monkey.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 world 按预期输出。

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

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

我错过了什么?

4

3 回答 3

2

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

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

作为一种解决方法,您可以编写一个与您的__main__.py. 然后指向 PyInstaller。

于 2017-04-13T15:57:57.087 回答
0

首先安装pyinstaller

pip install pyinstaller 

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

pyinstaller exam_browser.py

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

pyinstaller exam_browser.py --onefile -F --icon logo.ico
于 2021-03-08T11:31:48.273 回答
0

我想你忘记了“pyinstaller -w --onefile test.py”。你忘了'-w'。

于 2020-04-20T05:29:25.393 回答