我正在尝试从我编写的一个非常简单的脚本创建一个.exe。剧本只包括环球和熊猫。但是pyinstaller包括matplotlib、numpy、scipy、qt4、ipython和其他一些东西。因为matplotlib有错误,.exe不会运行,但我甚至不需要matplotlib。我做错了什么让pyinstaller不认识到只需要glob和pandas?
我已经手动排除了scipy、matplotlib、PyQt4和iPython,而.exe仍然是160mb!
另外,我在winpython中用python 3.4做这个。
编辑: 经过进一步的测试,我把范围缩小到熊猫身上。即使脚本只包含:
import pandas
将创建460MB的dist文件夹或182MB的单个文件.exe。什么是最简单的方法,我可以找出哪些模块正在被导入,以便我可以正确地排除所有它们?
编辑2: 我试着制作一个hook-pandas.py文件,其中包含:
excludedhooks=['scipy','matplotlib','PIL','cython','PyQt4','zmq']
控制台输出表明,由于hook文件的原因,导入被删除,但是这些模块中的大量文件最终仍会出现在dist文件夹中。
我还尝试过在.spec文件中以及控制台中使用--exclude module排除这些模块,但是这些模块中的文件仍然会显示出来。
不确定这是否真的算作解决方案。但是,通过将winpython全部忽略在一起,并使用python的标准安装(仅添加了pip安装程序和pandas),我很容易生成一个18MB的functional.exe。我想这和winpython有关。
Pyinstaller可能已经从当前的依赖项中找到了这些依赖项。如果确定,请使用
--exclude-module
标志列出要排除的所有模块。http://pythonhosted.org/PyInstaller/#general-options
相关问题 更多 >
编程相关推荐