Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
之前我问过类似的问题:
但现在我有一个微妙的区别。我想 运行 程序而不安装 anaconda,只是在 cmd.exe
终端内,但似乎我做错了什么或者这是不可能的。
在使用 cx-freeze
使用 python setup.py bdist_msi
生成我的应用程序后,我可以在 anaconda 环境中安装然后 运行 它,但是如果我只是打开一个 cmd.exe
终端和运行它,我得到
INTEL MKL ERROR: The specified module could not be found. mkl_intel_thread.dll.
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll.
然而,当运行宁
where mkl_intel_thread.dll
找到了dll,所以我认为这意味着它在系统中注册了(我更习惯使用Linux,所以可能是我错了)。
我该如何解决这个问题?
可能缺少 MKL 所需的另一个 DLL,例如 libiomp5md.dll
,从而导致错误。请参阅 ,我在那里的回答及其评论。
如果仍然不能解决您的问题,请尝试从anaconda环境的库路径中手动复制其他DLL到应用程序安装目录及其lib
子目录中。一旦找到缺少的依赖项,就可以使用 cx_Freeze 的 include_files
选项在设置中自动执行此步骤(如您所知)。
另一个可能的问题是您的系统上安装了不兼容的 MKL 版本,并且冻结的应用程序找到了这个错误的版本,但这不太可能,除非您在 Python 上安装了 32 位 Python 64 位系统或已在其他系统上安装应用程序。
编辑:
也可能只是冻结的应用程序没有找到 mkl_intel_thread.dll
尽管 where
找到了它。 where
在PATH
环境变量给出的系统搜索路径中查找,而Python在sys.path
给出的模块搜索路径中查找,通常不包括内容PATH
,请参阅 Where is Python's sys.path initialized from? 但是在 Windows 上有一个已注册 DLL 的回退机制(我不知道它是如何工作的)。无论如何,一旦打算在另一个系统上安装和 运行 应用程序,就不应依赖此回退,因为那里可能没有安装必要的 DLL。因此,必要的依赖项应始终包含在安装目录中。
最近我在 python3.7 遇到了同样的错误。我没有移动 Dll 的选项,我通过这样做解决了问题。
conda install cython
安装 cython 后,所有的 dll 都在正确的位置。
set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1;
会解决你所有的问题
根据 我将 c:\windows\system32\libiomp5md.dll 重命名为 .bak 并为我修复了它。
之前我问过类似的问题:
但现在我有一个微妙的区别。我想 运行 程序而不安装 anaconda,只是在 cmd.exe
终端内,但似乎我做错了什么或者这是不可能的。
在使用 cx-freeze
使用 python setup.py bdist_msi
生成我的应用程序后,我可以在 anaconda 环境中安装然后 运行 它,但是如果我只是打开一个 cmd.exe
终端和运行它,我得到
INTEL MKL ERROR: The specified module could not be found. mkl_intel_thread.dll.
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll.
然而,当运行宁
where mkl_intel_thread.dll
找到了dll,所以我认为这意味着它在系统中注册了(我更习惯使用Linux,所以可能是我错了)。
我该如何解决这个问题?
可能缺少 MKL 所需的另一个 DLL,例如 libiomp5md.dll
,从而导致错误。请参阅
如果仍然不能解决您的问题,请尝试从anaconda环境的库路径中手动复制其他DLL到应用程序安装目录及其lib
子目录中。一旦找到缺少的依赖项,就可以使用 cx_Freeze 的 include_files
选项在设置中自动执行此步骤(如您所知)。
另一个可能的问题是您的系统上安装了不兼容的 MKL 版本,并且冻结的应用程序找到了这个错误的版本,但这不太可能,除非您在 Python 上安装了 32 位 Python 64 位系统或已在其他系统上安装应用程序。
编辑:
也可能只是冻结的应用程序没有找到 mkl_intel_thread.dll
尽管 where
找到了它。 where
在PATH
环境变量给出的系统搜索路径中查找,而Python在sys.path
给出的模块搜索路径中查找,通常不包括内容PATH
,请参阅 Where is Python's sys.path initialized from? 但是在 Windows 上有一个已注册 DLL 的回退机制(我不知道它是如何工作的)。无论如何,一旦打算在另一个系统上安装和 运行 应用程序,就不应依赖此回退,因为那里可能没有安装必要的 DLL。因此,必要的依赖项应始终包含在安装目录中。
最近我在 python3.7 遇到了同样的错误。我没有移动 Dll 的选项,我通过这样做解决了问题。
conda install cython
安装 cython 后,所有的 dll 都在正确的位置。
set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1;
会解决你所有的问题
根据 我将 c:\windows\system32\libiomp5md.dll 重命名为 .bak 并为我修复了它。