30
votes

Importing the numpy c-extensions failed

I installed python 3.7 on my windows system to work on visual studio code. Everything was going well, including using the libraries. I uninstalled python using the uninstalling program tool in control panel. And installed Miniconda 3. I checked that everything works well, and then installed the numpy library using conda install numpy in my terminal GitBash on windows 10, then checked it on my visial studio code, but it failed to start.

Reproducing code example:

import numpy as np
A = np.array([[-1], [7], [-26]])

Error message:

Traceback (most recent call last): File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py", line 17, in from . import multiarray File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\multiarray.py", line 14, in from . import overrides File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\overrides.py", line 7, in from numpy.core._multiarray_umath import ( ImportError: DLL load failed: Не найден указанный модуль.

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:/Users/ramim/Desktop/22/Matrix library/alsf.py", line 3, in import numpy as np File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy__init__.py", line 142, in from . import core File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py", line 47, in raise ImportError(msg) ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy c-extensions failed. - Try uninstalling and reinstalling numpy. - If you have already done that, then: 1. Check that you expected to use Python3.7 from "C:\Users\ramim\Miniconda3\python.exe", and that you have no directories in your PATH or PYTHONPATH that can interfere with the Python and numpy version "1.17.3" you're trying to use. 2. If (1) looks fine, you can open a new issue at https://github.com/numpy/numpy/issues. Please include details on: - how you installed Python - how you installed numpy - your operating system - whether or not you have multiple versions of Python installed - if you built from source, your compiler versions and ideally a build log

  • If you're working with a numpy git repository, try git clean -xdf (removes all files not under version control) and rebuild numpy.

Note: this error has many possible causes, so please don't comment on an existing issue about this - open a new one instead.

Original error was: DLL load failed: Не найден указанный модуль.

Numpy/Python version information:

Python 3.7.5 Numpy 1.17.3

I tried to uninstall and install the numpy library again, but it was useless. Note: when I type in the teminal conda install numpy, it says:

All requested packages already installed

That's how I checked if numpy is really installed!

How to solve that?

9
Did your conda environment that you installed into activate before you began executing your code?Brett Cannon
I'm having the same issue, and it seems to be a VS Code issue. I am able to run my code from anaconda prompt with no issues. conda list shows that it's installed. Will submit an answer if I find the problem.bneelon

9 Answers

27
votes

Try to uninstall numpy and setuptools first:

  1. pip uninstall -y numpy

  2. pip uninstall -y setuptools

  3. pip install setuptools

  4. pip install numpy

Borrowed from solution provided by mehdiHadji here- https://github.com/ipython/ipyparallel/issues/349

10
votes

Not sure this is a thing in Visual Studio too, but for Eclipse I had to change one of the environmental variables.

Setup: Windows, Python 3.7, Conda venv with numpy

Solution:

CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1

For Eclipse, the environment variables can be accessed via Properties -> Run/Debug Settings -> Edit -> Environment.

Anaconda also documented the fix, albeit for a different problem: Conda Troubleshooting

8
votes

This issue is caused by VScode default terminal (powershell) setting, To switch VScode default terminal from powershell to cmd, the conda env will be activated correctly, other powershell will try to invoke conda activate xxxxxx which will fail, then the subsequent import numpy will fail.

So two ways to fix it:

  1. Fix path search issue under powershell environment to get conda activate xxxxxx successfully executed;

  2. Change vs code default terminal to 'cmd': add "terminal.integrated.shell.windows": "C:\Windows\System32\cmd.exe" in settings.json

1
votes

It looks like there's something wrong with your %PATH%. It might either contain some conflicts, or just be too long (>2047 chars). Try adding the folder with the dlls (from the environment you're trying to use) to the very beginning of it:

PATH=C:\Users\ramim\Miniconda3\Library\bin;%PATH%
python -c "import numpy"

(based on this)

1
votes

I solved this by the following steps-

  1. Uninstalling numpy and pandas with conda
  2. Installing numpy and pandas with pip
1
votes

Similar with my problem recently. I'm using Python 3.8 by Miniconda on Win 10 system. I solved the problem by changing default terminal from PowerShell to Command Prompt.

Steps:

  1. Open VS Code's Command Palette menu by pressing Ctrl+Shift+P or F1
  2. Choose "Terminal: Select Default Profile" entry
  3. Then pick "Command Prompt" option
  4. Restart VS Code
0
votes

I solved it by removing ALL numpy versions

pip uninstall numpy
pip3 uninstall numpy

And then installing numpy and libatlas-base-dev via apt-get

sudo apt-get remove python3-numpy
sudo apt-get install libatlas-base-dev
0
votes

This issue is still ongoing. I use VS code with conda venv, and solved it in a similar way with marineCoder:

  • In addition to numpy and pandas, I also remove matplotlib using conda uninstall
  • Cautiously reinstall pandas and numpy using pip install

In my case, the error shows up whenever matplotlib package is installed, so I got to either remove it or downgrade the three of them. There is a clash on numpy dependency. Another related issue is shown in this post:

I get `No module named _multiarray_umath` when using matplotlib

0
votes

In my case, I had to manually 'conda activate myenv' the desired environment in the VS code terminal. Previously, I only had to select the python version from the desired environment, and then the environment would auto-activate. This answer references and confirms Brett Cannon's comment above, which was the sole reason I thought to try it.