我有一个在 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 分析。
我错过了什么?