ImportError: DLL load failed when importing Numpy installed in conda virtual environment

53,392

Solution 1

Uninstall and install numpy again.

pip uninstall numpy
pip install numpy

Then try import again, it should work. That is what I did

Solution 2

Unlike @Rafael, for me, libiomp5md.dll wasn't the issue. I installed Dependency Walker to investigate what was going on. Even though the dll versions were different, but Dependency Walker said it was okay.

What was wrong though, was that mkl_intel_thread.dll had warnings (red icon). If you're using Win 8++, ignore the api-win and ext-ms issues as Dependency Walker wasn't updated for new Windows versions and doesn't recognise Windows new APIs.

My solution is to copy all mkl_*.dlls from the former to the latter:

  • \Anaconda2\Library\bin
  • \Anaconda2\Lib\site-packages\numpy\core

I was able to import numpy and sklearn after that.

Solution 3

It seems the proper way to fix this is to do:

conda install msvc_runtime

If you are in a virtual environment, add this package there.

Solution 4

For my case, I have also the import numpy DLL error in anaconda3, and Decrayer (Nov 28) provided the best solution: I had the same error except for Anaconda3: just added the path \Anaconda3\Library\bin to your Windows 10 path variable and then it worked.

I have been trying to install anaconda3.7.1 or 3.7.0 without luck, going to full length of restarting the PC after the key steps to make sure the DLL is no longer in use in memory. Ultimately, thanks to decrayer, now numpy works for me!

Solution 5

For me this was solved by adding the following paths to my system path variable.

C:\Users\UserName\Anaconda3\
C:\Users\UserName\Anaconda3\bin
C:\Users\UserName\Anaconda3\Scripts
C:\Users\UserName\Anaconda3\Library\mingw-w64\bin (not strictly necessary)
C:\Users\UserName\Anaconda3\Library\bin

Before adding them explicitly in the system path variable, you can perform a test by adding these paths temporarily:

base_path = r"C:\Users\UserName\Anaconda3"
path = os.pathsep.join([os.path.join(base_path, i) for i in [r"", r"bin", r"Scripts", r"Library\mingw-w64\bin", r"Library\bin"]])
os.environ["PATH"]+=os.pathsep+path

Thanks to this post on PyCharm support.

Share:
53,392
mkrems
Author by

mkrems

Updated on January 19, 2022

Comments

  • mkrems
    mkrems over 2 years

    In Windows, I created a Conda virtual environment with the command

    conda create -n test python=2.7 pandas scipy matplotlib numpy
    

    Once it is created, I activated the virtual environment and went into a python interpreter. When trying to import numpy, I get the following error:

    >>> import numpy
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Anaconda3\envs\test\lib\site-packages\numpy\__init__.py", line 180, in <module>
        from . import add_newdocs
      File "C:\Anaconda3\envs\test\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
        from numpy.lib import add_newdoc
      File "C:\Anaconda3\envs\test\lib\site-packages\numpy\lib\__init__.py", line 8,
     in <module>
        from .type_check import *
      File "C:\Anaconda3\envs\test\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
        import numpy.core.numeric as _nx
      File "C:\Anaconda3\envs\test\lib\site-packages\numpy\core\__init__.py", line 14, in <module>
        from . import multiarray
    ImportError: DLL load failed: The specified module could not be found.
    

    Any ideas what is going on here? Thanks!