PyInstaller打包不必要的数学内核库dll

时间:2018-03-14 18:51:45

标签: python pyinstaller

我正在使用pyinstaller从python文件创建一个独立的可执行文件。我注意到许多数学内核库也是捆绑包。以下是dll列表,因此增加了我的包的大小。这是在Windows 10机器上看到的。

mkl_avx.dll mkl_avx2.dll mkl_avx512.dll mkl_avx512_mic.dll mkl_core.dll mkl_thread.dll mkl_mic.dll mkl_mic3.dll mkl_pgi_thread.dll mkl_rt.dll mkl_scalapack_ilp64.dll mkl_sequential.dll mkl_vml_avx.dll mkl_vml_avx512.dll mkl_vml_cmpt.dll mkl_vml_mc.dll mkl_vml_mc3.dll

我尝试了不同的Windows 10机器,我没有看到这些dll被打包但可执行文件在两台机器上运行。我只是想了解为什么这些dll打包了?
有没有办法可以排除它们?
这些是否包含在任何python包中?我的点子清单如下

altgraph (0.15)
asn1crypto (0.24.0)
backports.functools-lru-cache (1.5)
certifi (2018.1.18)
cffi (1.11.4)
chardet (3.0.4)
conda (4.4.10)
cryptography (2.1.4)
cycler (0.10.0)
future (0.16.0)
idna (2.6)
kiwisolver (1.0.1)
macholib (1.8)
matplotlib (2.2.0)
menuinst (1.4.11)
numpy (1.14.1)
pandas (0.22.0)
pefile (2017.11.5)
pip (9.0.1)
pycosat (0.6.3)
pycparser (2.18)
pycrypto (2.6.1)
PyInstaller (3.3.1)
pyOpenSSL (17.5.0)
pyparsing (2.2.0)
PySocks (1.6.7)
python-dateutil (2.6.1)
pytz (2018.3)
pywin32 (222)
requests (2.18.4)
ruamel-yaml (0.15.35)
setuptools (38.4.0)
six (1.11.0)
tornado (4.5.3)
urllib3 (1.22)
wheel (0.30.0)
win-inet-pton (1.0.1)
wincertstore (0.2)
XlsxWriter (1.0.2)

1 个答案:

答案 0 :(得分:0)

我做了一些实验后找到了答案。我正在使用python和anaconda,当我从这个python安装numpy时,它安装了像mkl这样的软件包以及numpy安装。因此,当我运行pyinstaller时,这些与numpy一起打包。
  解决方案是我不得不anaconda和安装miniconda3,然后安装相关包和使用pyinstaller。这次没有安装mkl包。因此问题解决了。