最近因為一些原因安裝了Anaconda3並且重新配置Python環境,但是遇到了一些麻煩的事情。
首先就是在Anaconda已經裝好numpy和mkl的情況下,在PyCharm中import numpy,會提示
from . import _mklinit ImportError: DLL load failed: 找不到指定模塊
但是在Jupiter和Spider里面都能正確import numpy,不會出現這個問題。
在網上找了很多解決方法(多數是說python版本和numpy版本不匹配等問題導致,需要重新安裝),但都嘗試無果。最后終於在https://www.jianshu.com/p/2418311bbad0這篇文章中找到了答案。
因為我以前是直接安裝的python而沒有用Anaconda的python,看到這篇文章才想起,在環境變量里面保留着原來的python路徑,而沒有添加Anaconda的路徑,將如下的路徑添加到PATH之后問題就解決了。
當然,我也看到有些文章(包括Anaconda安裝時的提示)說不建議把Anaconda添加到環境變量,但是如果不添加到環境變量似乎就沒辦法解決PyCharm中無法import numpy這個問題,具體的原因我也不是很清楚,不知道有沒有更好的辦法,希望大家能夠提出來,謝謝。
在環境配置的過程中我還遇到了另外一個問題,就是上述問題解決之后發現又出現一個提示
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll.
起初我以為是跟mkl的安裝過程有關,所以我將mkl卸載了重裝卻沒能解決這個問題。
直到看到這一篇文章https://blog.csdn.net/Steven19920104/article/details/90900470 中提到,可能是由於相關的dll文件沒有被程序找到,所以需要把Anaconda目錄下的libiomp5md.dll復制到C:\Windows\System32,似乎就能夠找到環境中的mkl_intel_thread.dll文件了。
從下圖可以看到mkl_intel_thread.dll文件的確是存在於環境之中的,只是沒有被程序讀取到。
總之,非常感謝這兩篇博客的作者的方法幫我解決了這兩個問題。我在這里也將這兩個問題記錄下來,給遇到同樣問題的人一個參考。