编程语言
首页 > 编程语言> > python – Pyinstaller numpy“英特尔MKL致命错误:无法加载mkl_intel_thread.dll”

python – Pyinstaller numpy“英特尔MKL致命错误:无法加载mkl_intel_thread.dll”

作者:互联网

我是python应用程序的新手.我正在尝试使用pyinstaller构建我的python GUI应用程序.
我的应用程序取决于以下包:PyQt4,numpy,pyqtgraph,h5py.
我正在使用WinPython-32bit-3.4.4.1.

我用这个命令构建应用程序:

pyinstaller --hidden-import=h5py.defs --hidden-import=h5py.utils --hidden-import=h5py.h5ac --hidden-import=h5py._proxy VOGE.py

我用pyinstaller创建的dist目录中的exe文件启动我的应用程序,它似乎工作正常,直到程序调用numpy并崩溃时出现此错误:

英特尔MKL致命错误:无法加载mkl_intel_thread.dll

软件目录中不存在mkl_intel_thread.dll;但是在程序的根目录中复制了文件,我得到了同样的错误

谢谢你的帮助

解决方法:

我创建了一个hook-numpy.py来处理这个问题:

from PyInstaller import log as logging 
from PyInstaller import compat
from os import listdir

libdir = compat.base_prefix + "/lib"
mkllib = filter(lambda x : x.startswith('libmkl_'), listdir(libdir))
if mkllib <> []: 
   logger = logging.getLogger(__name__)
   logger.info("MKL installed as part of numpy, importing that!")
   binaries = map(lambda l: (libdir + "/" + l, ''), mkllib)

就我而言,conda正在安装mkl库以加速numpy和scipy.

标签:pyinstaller,python,numpy,intel-mkl,dll
来源: https://codeday.me/bug/20190930/1835699.html