python - pyinstaller 不能包含包
问题描述
我在虚拟环境中运行 python 2.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,则导入成功。
但是,当我尝试使用不带 pyinstaller(3.6 版本)--windowed
的可执行文件时,从 cmd 运行 exe 文件会给出ImportError: No module named lz4
.
所以我猜出于某种原因 pyinstaller 不能包含特定的包。
我已经尝试添加运行 pyinstaller 命令--hidden-import=lz4
, --paths="path_folder_to_lz4_inside_virtualenv"
, 包括hiddenimports=['lz4'],
在文件上并在文件而不是文件.spec
上运行 pyinstaller 命令(以及在文件上),包括.spec
.py
.py
from PyInstaller.utils.hooks import collect_submodules
hidden_imports = collect_submodules('lz4')
在.spec
两者上运行 pyinstaller 命令.spec
,.py
但 ImportError 仍然存在。
我的机器有 Windows 10。请注意,这是从另一台机器克隆的虚拟环境,其中 pyinstaller 命令运行没有任何问题,唯一的区别是我有 Windows 7,PyQt 没有安装轮文件,而是复制 PyQt4 文件夹和sip.pyd 从基础安装到环境包文件夹。
有什么建议么?
解决方案
好的解决方案,以防有人遇到同样的问题。
在以前的机器上,如果没有问题,pyinstaller 命令从 python 2.7 的主要 python 安装运行 pyinstaller。(虚拟环境没有安装pyinstaller)
在机器上的问题是,pyinstaller 安装在主安装(python 3)和一个单独的 virualenv 中,主安装 python 2.7,我从这个 python 2.7 安装运行 pyinstaller。
现在我在 virtualenv 上为这个特定的应用程序安装了 pyinstaller,我从那里运行了 pyinstaller 命令,它工作了。
推荐阅读
- python-3.x - 从单列列表创建特征列
- python - 如何使用自定义训练循环保存 Tensorflow 2.2.0 模型?
- c - c 的 fflush(FILE* stream) 和 fflush(NULL) 有什么不同?
- c# - 如何在枚举中使用 switch?
- javascript - javascript:如何从事件(MouseEvent)中获取数据?
- haskell - 如何在 main 中使用用户输入调用函数?
- django - Elastic Beanstalk 无法使用 postgresql 安装软件包
- r - 按组重新排序ggplot x变量
- sql - 在没有聚合函数的 SQL 中转置表
- html - 删除 word press 网站上的 DIV 元素