我尝试使用PyInstaller 3.2.1创建一个exe文件,为了测试目的,我尝试为以下代码创建一个exe:
import pandas as pd
print('hello world')经过相当长的时间(15分钟+),我完成了大到620 MB的dist文件夹,并构建了- 150 MB。我在Windows上使用Python3.5.2\Anaconda自定义(64位)。值得注意的是,在dist文件夹中,mkl文件负责将近300 MB。我使用'pyinstaller.exe foo.py‘运行pyinstaller。我试着使用--排除--模块来排除一些依赖项,结果仍然是巨大的文件。不管我用的是单效还是单效药,都不会有任何区别。
我知道exe必须包含一些重要的文件,但是大小几乎达到1GB是正常的吗?我可以提供警告日志,如果有必要或任何可能有助于解决这一问题。
平行地,我的同事从同一个样例脚本中创建了一个exe,结果不到100 MB,不同的是他没有使用anaconda。这就是问题所在吗?
任何帮助都将不胜感激。
发布于 2018-02-17 22:26:13
PyInstaller从conda包创建一个大型可执行文件,从packages创建一个小型可执行文件。从这个简单的python代码:
from pandas import DataFrame as df
print('h')我使用conda包获得一个203 and的可执行文件,使用pip包获得一个30 and的可执行文件。但是conda是纯虚拟的很好的替代品。我可以使用conda和木星开发,创建一些脚本'mycode.py‘(我可以下载木星笔记本作为py文件在我的文件夹)。
但是我的最后一个解决方案是下一步:如果没有,安装米尼康达并从Windows菜单打开Anaconda提示符;
cd myfolder
conda create -n exe python=3
activate exe
pip install pandas pyinstaller pypiwin32
echo hiddenimports = ['pandas._libs.tslibs.timedeltas'] > %CONDA_PREFIX%\Lib\site-packages\PyInstaller\hooks\hook-pandas.py
pyinstaller -F mycode.py在我创建新环境'exe‘的地方,pyinstaller需要pypiwin32,但不是自动安装的,与熊猫一起编译还需要钩子-Pandas.py。此外,导入子模块也无助于优化可执行文件的大小。所以我不需要这个东西
from pandas import DataFrame as df但我可以用通常的代码:
import pandas as pd此外,在使用路径中的国家字母时可能会出现一些错误,因此英文用户帐户是很好的开发工具。
发布于 2017-05-10 08:50:53
这可能是因为numpy的Anaconda版本是使用mkl构建的。
如果希望减少可分发的大小,可以使用独立构建的虚拟环境,其包是通过pip安装的,而不是conda安装的。
发布于 2018-04-29 02:23:18
下面是一种仍然使用conda并避免使用mkl的方法。使用以下备用命令在安装熊猫之前安装numpy:
conda install -c conda-forge numpy
避免使用mkl,取而代之的是使用OpenBLAS包。这个问题发生在conda/conda-forge/numpy-原料github回购公司中的全部解释。
https://stackoverflow.com/questions/43886822
复制相似问题