pyinstaller不能包含程序包

2024-06-01 21:55:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个虚拟环境中运行Python2.7,在这个虚拟环境中,激活后运行pip freeze将返回

future==0.17.1
lz4==2.1.6
pyparsing==2.3.1
PyQt4 @ file:///C:/.../PyQt4-4.11.4-cp27-cp27m-win_amd64.whl
xlrd==1.2.0

如果我在激活的虚拟环境中运行python并导入lz4,则会成功导入它

但是,当我尝试在不使用--windowed的情况下使用pyinstaller(3.6版本)构建可执行文件时,从cmd运行exe文件会产生ImportError: No module named lz4

因此,我猜出于某种原因,pyinstaller不能包含特定的包

我已经尝试添加了使用--hidden-import=lz4--paths="path_folder_to_lz4_inside_virtualenv"运行pyinstaller命令,包括在.spec文件上运行hiddenimports=['lz4'],,以及在.spec文件上而不是在.py文件上运行pyinstaller命令,包括

from PyInstaller.utils.hooks import collect_submodules

hidden_imports = collect_submodules('lz4')

.spec上,并在.spec.py上运行pyinstaller命令,但导入错误仍然存在

我的机器有Windows 10。请注意,这是一个从另一台机器克隆的虚拟环境,pyinstaller命令在该机器上运行时没有任何问题,唯一的区别是我安装了Windows 7,PyQt没有安装轮子文件,而是将PyQt4文件夹和sip.pyd从基本安装复制到environment packages文件夹

有什么建议吗


Tags: 文件pyimport命令文件夹机器windows虚拟环境
1条回答
网友
1楼 · 发布于 2024-06-01 21:55:30

好的,如果有人有同样的问题,可以提供一个解决方案

在前一台机器中,如果没有问题,pyinstaller命令将从主python安装(即Python2.7)运行pyinstaller。(虚拟环境未安装pyinstaller)

在机器中,问题是,pyinstaller安装在主安装(Python3)中,并安装在一个单独的virualenv中,带有主Python2.7安装,我从这个Python2.7安装运行pyinstaller

现在,我在virtualenv上为这个特定的应用程序安装了pyinstaller,并从那里运行pyinstaller命令,它成功了

相关问题 更多 >