我在一个虚拟环境中运行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文件夹
有什么建议吗
好的,如果有人有同样的问题,可以提供一个解决方案
在前一台机器中,如果没有问题,pyinstaller命令将从主python安装(即Python2.7)运行pyinstaller。(虚拟环境未安装pyinstaller)
在机器中,问题是,pyinstaller安装在主安装(Python3)中,并安装在一个单独的virualenv中,带有主Python2.7安装,我从这个Python2.7安装运行pyinstaller
现在,我在virtualenv上为这个特定的应用程序安装了pyinstaller,并从那里运行pyinstaller命令,它成功了
相关问题 更多 >
编程相关推荐