2019-11-02

最近因为一些原因安装了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之后问题就解决了。

image

当然,我也看到有些文章(包括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文件的确是存在于环境之中的,只是没有被程序读取到。


image.png

cannot load mkl_intel_thread.dll

怎么办?

解决方法:

  1. 在你的anaconda的安装文件中找到一个文件:libiomp5md.dll

  2. 复制它,然后粘贴到C:\Windows\System32中就好了。这个问题就会被永远解决了。

产生问题的原因:

在我的环境中 mkl_intel_thread.dll这个文件是存在的,只是程序在系统中找不到这个文件文件。


如果你在使用你自己搭建的conda的虚拟环境中遇到此问题,如何解决:

  1. 你要更新一下conda的版本:

conda update anaconda

  1. 更新一下numpy、mkl:

conda update numpy
conda update mkl
更新完,你再用numpy和pandas的时候应该不会遇到同样的问题了。

如果问题还没有解决,建议去stackoverflow搜索

你可能感兴趣的:(2019-11-02)