pyinstaller不能包含程序包



我在一个虚拟环境中运行python 2.7,在该环境中激活pip后运行它会返回

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,那么它就成功导入了。

但是,当我尝试用pyinstaller(3.6版本(构建不带--windowed的可执行文件时,从cmd运行exe文件会得到ImportError: No module named lz4

因此,我想出于某种原因,pyinstaller无法包含特定的软件包。

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

from PyInstaller.utils.hooks import collect_submodules
hidden_imports = collect_submodules('lz4')

.spec上,并在.spec.py上运行pyinstaller命令,但ImportError仍然存在。

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

有什么建议吗?

确定一个解决方案,以防有人遇到同样的问题。

在以前的机器中,如果没有问题,pyinstaller命令会从python 2.7的主安装中运行pyinstaller。(虚拟环境没有安装pyinstaller(

在机器中,问题是,pyinstaller安装在主安装(python 3(中,并安装在一个单独的viralenv中,带有主python 2.7安装,我从这个python 2.7安装中运行pyinstaller。

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

相关内容

最新更新