簡體   English   中英

英特爾 MKL 致命錯誤:無法加載 mkl_intel_thread.dll

[英]Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll

以前我問過一個類似的問題: cx_Freeze 無法找到 mkl: MKL FATAL ERROR: Cannot load mkl_intel_thread.dll

但現在我有一個微妙的區別。 我想在不安裝 anaconda 的情況下運行程序,就在cmd.exe終端內,但似乎我做錯了什么或者這是不可能的。

使用cx-freeze使用python setup.py bdist_msi生成我的應用程序后,我可以在 anaconda 環境中安裝並運行它,但如果我只是打開一個cmd.exe終端並運行它,IDA54.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 )丟失並導致錯誤。 請參閱無法在 python 可執行文件上加載 mkl_intel_thread.dll ,我在那里的回答及其評論。

如果這仍然不能解決您的問題,請嘗試將 anaconda 環境的庫路徑中的其他 DLL 手動復制到應用程序安裝目錄及其lib子目錄中。 一旦發現缺少哪個依賴項,就可以使用 cx_Freeze 的include_files選項在設置中自動執行此步驟(如您所知)。

另一個可能的問題是您的系統上安裝了不兼容的 MKL 版本,並且凍結的應用程序發現了這個錯誤的版本,但這不太可能,除非您在 64 位系統上安裝了 32 位 Python 或已經安裝了在另一個系統上的應用程序。

編輯:

也可能只是凍結的應用程序沒有找到mkl_intel_thread.dll盡管where找到它。 wherePATH環境變量給出的系統搜索路徑where查找,而 Python 在sys.path給出的模塊搜索路徑中sys.path ,通常不包含PATH的內容,請參閱Python 的 sys.path 是從哪里初始化的? 但是在 Windows 上,注冊的 DLL 有一個回退機制(我不知道它是如何工作的)。 無論如何,一旦打算在另一個系統上安裝和運行該應用程序,就不應依賴這種回退,因為那里可能沒有安裝必要的 DLL。 因此,安裝目錄中應始終包含必要的依賴項。

最近我在 python3.7 中遇到了同樣的錯誤。 我沒有移動 Dll 的選項,我只是通過做來解決了這個問題。

conda install cython

在 cython 安裝后,所有 dll 都在正確的位置。

根據https://stackoverflow.com/a/56186333/977566,我將 c:\\windows\\system32\\libiomp5md.dll 重命名為 .bak 並為我修復了它。

設置 CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1;

會解決你所有的問題

For this, it is enough to get the full version of visual c++ program and delete anaconda and folders related to anaconda such as .anaconda or .conda or .matplotlib or AppData/anaconda and... and then install it again
當然,不要忘記所有的英特爾服務都必須處於活動狀態
https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM