从简单的Python脚本创建可执行文件时,Pyinstaller成功完成。但是,当尝试运行可执行文件时,它失败,并显示ModuleNotFoundError
:
Traceback...
ModuleNotFoundError: No module named 'git'
[26228] Failed to execute script xyz
我已经通过Pipenv安装了gitpython。为什么捆绑不正确?
答案 0 :(得分:0)
这里可能的问题是使用全局Pyinstaller安装。此安装不知道通过Pipenv下载的pip软件包。
我在Pipenv shell中再次尝试了,效果很好:
pipenv shell
pip install pyinstaller
pyinstaller script.py -F
现在该模块已正确捆绑。
答案 1 :(得分:0)
@vauhochzett提供的答案几乎是正确的,但需要进行如下修改。不用在pipenv中使用pip来安装pyinstaller,而是使用pipenv本身来安装pyinstaller。
这意味着您将需要在创建的每个pipenv中安装pyinstaller,但是它将为您使用的每个venv正确整理导入路径。
使用pip安装pyinstaller时,导入路径有些混乱,但是当使用pipenv在venv中安装模块时,一切都按预期工作。
$ pipenv install pyinstaller
$ pipenv run pyinstaller script.spec