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

Sun*_*san 5 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)
Run Code Online (Sandbox Code Playgroud)

Sun*_*san 4

我做了一些实验后找到了答案。mkl我将 python 与 anaconda 一起使用,当我从这个 python 安装 numpy 时,它安装了与 numpy 安装一样的软件包。因此,当我运行 pyinstaller 时,它们与 numpy 一起打包。
解决方案是我必须使用 anaconda 并安装 miniconda3,然后安装相关软件包并使用 pyinstaller。这次 mkl 包没有安装。从而解决了问题。