Создайте новый виртуальный env с помощью Anaconda Navigator 1.9.6 под Windows 10, выбрав Python 3.7 и назвав python37.
В консоли VSCode:
(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)
(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
Чего не хватает для пипсового пути?
Есть идеи?
Существует разница между расположением дополнительных библиотек поддержки, поставляемых с 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
Самый полезный комментарий
Существует разница между расположением дополнительных библиотек поддержки, поставляемых с anaconda, и тех, которые поставляются со стандартным numpy, которые вы получаете от
pip install
. Это требует корректировки переменнойPATH
. Возможно, при импорте не удается выполнить настройкиPATH
. Существует ли каталогsite-packages\numpy\.libs
и содержит ли он файлы*.dll
? Если да, можете ли вы попробовать добавить этот каталог в началоPATH
перед запуском python:Сообщите нам, существует ли этот каталог, и если изменение пути прошло успешно, это означает, что код в
numpy\__config__.py
не может изменитьos.environ['PATH']
. Возможно, вы превысили разрешенную длинуPATH
или возникла другая проблема с переменной окруженияPATH
.Anaconda помещает дополнительные DLL в
<anaconda install>\Library\bin
и добавляет этот каталог в путь при активации среды anaconda. Stock numpy, как описано выше, пытается добавить каталог.lib
в конец переменнойPATH
.