nic*_*sts 7 python pyinstaller python-3.x
我试图从我编写的非常简单的脚本中创建一个.exe。该脚本仅包含glob和pandas。但是pyinstaller包括matplotlib,numpy,scipy,qt4,ipython和其他一堆东西。.exe将不会运行,因为matplotlib出现错误,但我什至不需要matplotlib。我要怎么做才能使pyinstaller无法识别仅需要glob和pandas?
我已经手动排除了scipy,matplotlib,PyQt4和iPython,而.exe仍然是160mb!
PS我正在用python 3.4在winpython中这样做。
编辑:经过一些进一步的测试,我将范围缩小到了熊猫。即使是仅包含以下内容的脚本:
import pandas
Run Code Online (Sandbox Code Playgroud)
将创建一个460MB的dist文件夹或一个182MB的单个文件.exe。找出要导入哪些模块以便正确排除所有模块的最简单方法是什么?
Edit2:我尝试制作一个包含以下内容的hook-pandas.py文件:
excludedhooks=['scipy','matplotlib','PIL','cython','PyQt4','zmq']
Run Code Online (Sandbox Code Playgroud)
控制台输出指示由于挂钩文件而删除了导入,但是来自这些模块的大量文件仍最终位于dist文件夹中。
我也尝试过使用--exclude-module将这些模块排除在.spec文件以及控制台中,但这些模块中的文件仍然显示出来。
不确定这是否真的算作解决方案。但是,通过忽略 winpython 并使用仅添加了 pyinstaller 和 pandas 的 pip 安装的 python 标准安装,我可以轻松生成一个 18MB 的功能性 .exe。我猜这与winpython有关。
| 归档时间: |
|
| 查看次数: |
8065 次 |
| 最近记录: |