Crie um novo ambiente virtual com Anaconda Navigator 1.9.6 no Windows 10, selecionando Python 3.7, nomeando python37
No console do 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
(mesmo com o parâmetro --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!
Todos os avisos, reinstalações via pip e conda ou diferentes versões numpy (por exemplo, 1.15.4) não resolveram esse problema para mim.
Se eu fizer várias desinstalações pip numpy até que não haja mais numpy e depois fizer um conda install numpy, a importação de numpy funcionará de maneira interessante (em 1.15.4).
Um conda install numpy faz o seguinte:
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
O que está faltando no pip way?
Alguma ideia?
Há uma diferença entre a localização das bibliotecas de suporte extras fornecidas com o anaconda e aquelas fornecidas com o estoque numpy que você obtém em pip install
. Isso requer ajustes na variável PATH
. Talvez os ajustes PATH
estejam falhando na importação. O diretório site-packages\numpy\.libs
existe e contém *.dll
arquivos ?, Em caso afirmativo, você pode tentar adicionar esse diretório ao seu PATH
antes de executar o python:
rem This fails
python -c "import numpy"
rem Does this succeed ???
PATH=path\to\site-packages\numpy\.libs;%PATH%
python -c "import numpy"
Por favor, informe-nos se esse diretório existe e se a alteração do caminho for bem-sucedida, isso indica que o código em numpy\__config__.py
não está modificando os.environ['PATH']
. Talvez você tenha excedido o comprimento permitido de PATH
, ou há algum outro problema com sua variável de ambiente PATH
.
O Anaconda coloca as dlls extras em <anaconda install>\Library\bin
e adiciona esse diretório ao caminho quando você ativa um ambiente anaconda. Stock numpy, conforme descrito acima, tenta anexar o diretório .lib
ao final da variável PATH
.
Seu método realmente funciona!
C: \ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libs existe e há um arquivo nele:
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll
Vou tentar uma nova instalação com um caminho inicial mais curto para verificar sua theroy em cerca de uma hora.
Questão lateral: não deveria haver mais dlls nesse caminho? Eu quero usar OpenMP e mkl com pytorch, não openblas ...
Se você quiser usar mkl, use conda, não pip
desculpe, use pip install intel-numpy
not pip install numpy
, mas você obterá 1.15.1 numpy . O Conda torna isso mais fácil e parece que você está usando o anaconda, então provavelmente ficar com o conda proporcionará uma experiência mais unificada.
Ok, encurtei meu PATH e ainda não está funcionando com "pip install numpy".
Isso é anexado ao meu PATH se eu "conda ativar o teste 37":
PATH = C: \ Usuários \ Nome.conda \ envs \ test37; C: \ Usuários \ Nome.conda \ envs \ test37 \ Biblioteca \ mingw-w64 \ bin; C: \ Usuários \ Nome.conda \ envs \ test37 \ Biblioteca \ usr \ bin; C: \ Users \ Name.conda \ envs \ test37 \ Library \ bin; C: \ Users \ Name.conda \ envs \ test37 \ Scripts; C: \ Users \ Name.conda \ envs \ test37 \ bin; ...
Meu PATH ainda é longo, mas não posso mais remover nada dele, porque outras ferramentas precisam dele como está.
Por que não há conda numpy 1.16.1?
Obrigado pela ajuda, cara!
(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" me dá 1.15.4, que está funcionando bem.
@mattip MUITO OBRIGADO
Talvez devêssemos vincular estaticamente e aliviar a necessidade desse caminho mutilando
Esse problema de edição de PATH no numpy para versões mais recentes do python pode ter o mesmo motivo?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849 -> https://github.com/pytorch/pytorch/issues/17051
Também obtive o mesmo tipo de erro para o scipy. Depois de criar um env usando conda, tive que desinstalar usando pip e instalar usando conda para todos os pacotes que criaram um problema para mim. Isso funcionou para mim, embora não seja uma solução ideal, pois era uma operação muito manual.
@djdookie : apenas para saber o que funcionou e o que não funcionou. Você tem a dll em C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs
. Incluir isso no PATH antes de iniciar o python funcionou. Você poderia tentar anexar isso ao final de PATH (com um separador ';') e testar se um numpy instalado por pip funciona (talvez em um novo ambiente conda, que mudaria o caminho)?
Editar: observe que o novo ambiente teria um caminho diferente para dll
Parece que este é um ananconda quebrado, veja este problema ContinuumIO / anaconda-issues # 10628
Fechando. O Anaconda parece ter corrigido o problema que causou isso.
Acabei de baixar a versão mais recente do conda do Windows para python3.7 para o Windows 7 e tive esse problema. Podemos reabrir?
Eu resolvo o problema. Era um problema de caminho porque eu estava usando o WingIDE. Usei essas instruções para consertar
https://wingware.com/blog/anaconda
Especificamente, abri o prompt de comando do anaconda e fiz "PATH" e copiei-o em meu caminho de asa para meu projeto.
Para referência, meu 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: \ Usuários \ xx \ AppData \ Local \ Continuum \ anaconda3 \ bin; C: \ Usuários \ xx \ AppData \ Local \ Continuum \ anaconda3 \ condabin;
Eu apenas fui até a pasta e excluí um. Isso parece ter consertado.
Isso também parece acontecer no Jupyter se você não "ativar" o ambiente que usará ANTES de iniciar o Jupyter.
E também acontece no VS Code se você não "conda ativar" o ambiente ANTES de iniciar o vs code. Se eu usar "código". no prompt do ambiente conda, ele funciona.
Isso também parece acontecer no Jupyter se você não "ativar" o ambiente que usará ANTES de iniciar o Jupyter.
Isso funcionou para mim. E o problema parece particularmente no laboratório Jupyter
Resolvi meus problemas de carregamento de DLL Numpy substituindo o Anaconda3 pelo WinPython.
Eu tenho esse problema com o WinPaython
Comentários muito úteis
Há uma diferença entre a localização das bibliotecas de suporte extras fornecidas com o anaconda e aquelas fornecidas com o estoque numpy que você obtém em
pip install
. Isso requer ajustes na variávelPATH
. Talvez os ajustesPATH
estejam falhando na importação. O diretóriosite-packages\numpy\.libs
existe e contém*.dll
arquivos ?, Em caso afirmativo, você pode tentar adicionar esse diretório ao seuPATH
antes de executar o python:Por favor, informe-nos se esse diretório existe e se a alteração do caminho for bem-sucedida, isso indica que o código em
numpy\__config__.py
não está modificandoos.environ['PATH']
. Talvez você tenha excedido o comprimento permitido dePATH
, ou há algum outro problema com sua variável de ambientePATH
.O Anaconda coloca as dlls extras em
<anaconda install>\Library\bin
e adiciona esse diretório ao caminho quando você ativa um ambiente anaconda. Stock numpy, conforme descrito acima, tenta anexar o diretório.lib
ao final da variávelPATH
.