Numpy: ImportError: ошибка загрузки DLL для numpy 1.16.1

Созданный на 12 февр. 2019  ·  21Комментарии  ·  Источник: numpy/numpy

Создайте новый виртуальный env с помощью Anaconda Navigator 1.9.6 под Windows 10, выбрав Python 3.7 и назвав python37.

В консоли VSCode:

  • активировать python37
  • pip install numpy
(python37) D:\TfsProj\alphastone>pip install numpy
Collecting numpy
  Using cached https://files.pythonhosted.org/packages/41/b8/3a6b07352c2542ca1c89be7583e7ca07bf513895b6ac59ae008054f326b1/numpy-1.16.1-cp37-cp37m-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.16.1

(то же самое с параметром --no-cache-dir)

  • питон
  • import numpy
(python37) D:\TfsProj\alphastone>python
Python 3.7.2 (default, Feb 11 2019, 14:11:50) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
    from . import multiarray
  File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\multiarray.py", line 12, in <module>
    from . import overrides
  File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\overrides.py", line 6, in <module>
    from numpy.core._multiarray_umath import (
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\__init__.py", line 142, in <module>
    from . import core
  File "C:\Users\Name\.conda\envs\python37\lib\site-packages\numpy\core\__init__.py", line 47, in <module>
    raise ImportError(msg)
ImportError:

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

Все советы, переустановки через pip и conda или различные версии numpy (например, 1.15.4) не решили эту проблему для меня.

Если я делаю несколько pip uninstall numpy, пока не останется numpy, а затем сделаю conda install numpy, импорт numpy будет интересно работать (в 1.15.4).

Conda install numpy выполняет следующие действия:

The following NEW packages will be INSTALLED:

  blas               pkgs/main/win-64::blas-1.0-mkl
  icc_rt             pkgs/main/win-64::icc_rt-2019.0.0-h0cc432a_1
  intel-openmp       pkgs/main/win-64::intel-openmp-2019.1-144
  mkl                pkgs/main/win-64::mkl-2019.1-144
  mkl_fft            pkgs/main/win-64::mkl_fft-1.0.10-py37h14836fe_0
  mkl_random         pkgs/main/win-64::mkl_random-1.0.2-py37h343c172_0
  numpy              pkgs/main/win-64::numpy-1.15.4-py37h19fb1c0_0
  numpy-base         pkgs/main/win-64::numpy-base-1.15.4-py37hc3f5095_0

Чего не хватает для пипсового пути?
Есть идеи?

00 - Bug 29 - InteAnaconda

Самый полезный комментарий

Существует разница между расположением дополнительных библиотек поддержки, поставляемых с anaconda, и тех, которые поставляются со стандартным numpy, которые вы получаете от pip install . Это требует корректировки переменной PATH . Возможно, при импорте не удается выполнить настройки PATH . Существует ли каталог site-packages\numpy\.libs и содержит ли он файлы *.dll ? Если да, можете ли вы попробовать добавить этот каталог в начало PATH перед запуском python:

rem This fails
python -c "import numpy"

rem Does this succeed ??? 
PATH=path\to\site-packages\numpy\.libs;%PATH%
python -c "import numpy"

Сообщите нам, существует ли этот каталог, и если изменение пути прошло успешно, это означает, что код в numpy\__config__.py не может изменить os.environ['PATH'] . Возможно, вы превысили разрешенную длину PATH или возникла другая проблема с переменной окружения PATH .

Anaconda помещает дополнительные DLL в <anaconda install>\Library\bin и добавляет этот каталог в путь при активации среды anaconda. Stock numpy, как описано выше, пытается добавить каталог .lib в конец переменной PATH .

Все 21 Комментарий

Существует разница между расположением дополнительных библиотек поддержки, поставляемых с anaconda, и тех, которые поставляются со стандартным numpy, которые вы получаете от pip install . Это требует корректировки переменной PATH . Возможно, при импорте не удается выполнить настройки PATH . Существует ли каталог site-packages\numpy\.libs и содержит ли он файлы *.dll ? Если да, можете ли вы попробовать добавить этот каталог в начало PATH перед запуском python:

rem This fails
python -c "import numpy"

rem Does this succeed ??? 
PATH=path\to\site-packages\numpy\.libs;%PATH%
python -c "import numpy"

Сообщите нам, существует ли этот каталог, и если изменение пути прошло успешно, это означает, что код в numpy\__config__.py не может изменить os.environ['PATH'] . Возможно, вы превысили разрешенную длину PATH или возникла другая проблема с переменной окружения PATH .

Anaconda помещает дополнительные DLL в <anaconda install>\Library\bin и добавляет этот каталог в путь при активации среды anaconda. Stock numpy, как описано выше, пытается добавить каталог .lib в конец переменной PATH .

Ваш метод действительно работает!
C: \ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libs существует, и в нем есть один файл:
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll

Я попробую новую установку с более коротким начальным путем, чтобы проверить вашу теорию примерно через час.

Боковой вопрос: не должно ли быть больше dll на этом пути? Я хочу использовать OpenMP и mkl с pytorch, а не openblas ...

Если вы хотите использовать mkl, используйте conda, а не pip

извините, используйте pip install intel-numpy не pip install numpy , но вы получите numpy 1.15.1 . Conda упрощает эту задачу, и, похоже, вы используете anaconda, поэтому, вероятно, использование conda даст вам более унифицированный опыт.

Хорошо, я сократил свой PATH, но он все еще не работает с «pip install numpy».
Это добавляется к моему PATH, если я "conda activate test37":
ПУТЬ = C: \ Users \ Name.conda \ envs \ test37; C: \ Users \ Name.conda \ envs \ test37 \ Library \ mingw-w64 \ bin; C: \ Users \ Name.conda \ envs \ test37 \ Library \ usr \ bin; C: \ Users \ Name.conda \ envs \ test37 \ Library \ bin; C: \ Users \ Name.conda \ envs \ test37 \ Scripts; C: \ Users \ Name.conda \ envs \ test37 \ корзина; ...

Мой PATH по-прежнему длинный, но я больше не могу ничего удалить из него, потому что он нужен другим инструментам.

Почему нет conda numpy 1.16.1?

Спасибо за помощь, дружище!

(test37) D: \ test> pip install intel-numpy

Collecting intel-numpy
Could not find a version that satisfies the requirement intel-numpy (from versions: )
No matching distribution found for intel-numpy

"conda install numpy" дает мне 1.15.4, которая работает нормально.

@mattip БОЛЬШОЕ СПАСИБО

Возможно, нам стоит статически связать и избавить от необходимости искажать этот путь

Может ли эта проблема редактирования PATH в numpy для новых версий Python иметь ту же причину?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849 -> https://github.com/pytorch/pytorch/issues/17051

У меня такая же ошибка для scipy. После создания env с помощью conda мне пришлось удалить с помощью pip и установить с помощью conda для всех пакетов, которые создали для меня проблему. Это сработало для меня, хотя это не идеальное решение, так как это была ручная операция.

@djdookie : просто чтобы убедиться, что сработало, а что нет. У вас есть dll в C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs . Добавление этого в PATH перед запуском python сработало. Не могли бы вы попробовать добавить это в конец PATH (с разделителем ';') и проверить, работает ли numpy, установленный pip (возможно, в новой среде conda, что изменит путь)?

Изменить: обратите внимание, что в новой среде будет другой путь к dll

Кажется, это сломанный ананконда, см. Эту проблему ContinuumIO / anaconda-issues # 10628

Закрытие. Похоже, что Anaconda устранила проблему, вызвавшую это.

Я только что загрузил последнюю версию conda для Windows для python3.7 для Windows 7 и получил эту проблему. Мы можем снова открыть?

Решаю проблему. Это была проблема пути, поскольку я использовал WingIDE. Я использовал эти инструкции, чтобы исправить
https://wingware.com/blog/anaconda

В частности, я открыл командную строку anaconda, ввел «ПУТЬ» и скопировал ее в свой путь крыла для своего проекта.

Для справки, мой PATH = C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ mingw-w64 \ bin; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ usr \ bin; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Library \ bin; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ Scripts ; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ bin; C: \ Users \ xx \ AppData \ Local \ Continuum \ anaconda3 \ condabin;

Я просто зашел в папку и удалил одну. Кажется, это исправило.

Это также, похоже, происходит в Jupyter, если вы не активируете среду, которую вы будете использовать ДО запуска Jupyter.

И это также происходит в VS Code, если вы не активируете среду до запуска vs code. Если я использую «код». в приглашении среды conda он работает.

Это также, похоже, происходит в Jupyter, если вы не активируете среду, которую вы будете использовать ДО запуска Jupyter.

Это сработало для меня. И проблема, похоже, особенно в jupyter lab

Я решил свои проблемы с загрузкой Numpy DLL, заменив Anaconda3 на WinPython.

У меня проблема с WinPaython

Была ли эта страница полезной?
0 / 5 - 0 рейтинги