Numpy: ImportError: la carga de DLL falló para numpy 1.16.1

Creado en 12 feb. 2019  ·  21Comentarios  ·  Fuente: numpy/numpy

Cree un entorno virtual nuevo con Anaconda Navigator 1.9.6 en Windows 10, seleccione Python 3.7, nombre python37

En la consola de VSCode:

  • activar python37
  • pip instalar 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

(lo mismo con el parámetro --no-cache-dir)

  • pitón
  • importar 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!

Todos los consejos, reinstalaciones a través de pip y conda, o diferentes versiones numpy (por ejemplo, 1.15.4) no resolvieron este problema para mí.

Si hago varias desinstalaciones de pip numpy hasta que no quede numpy, y luego hago una instalación de conda numpy, la importación de numpy funciona de manera interesante (en 1.15.4).

Una instalación de conda numpy hace lo siguiente:

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

¿Qué le falta al modo pip?
¿Algunas ideas?

00 - Bug 29 - InteAnaconda

Comentario más útil

Existe una diferencia entre la ubicación de las bibliotecas de soporte adicionales que se proporcionan con anaconda y las que se suministran con el número de existencias que obtiene de pip install . Esto requiere ajustes en la variable PATH . Quizás los ajustes de PATH estén fallando en la importación. ¿Existe el directorio site-packages\numpy\.libs y contiene archivos *.dll ?, Si es así, puede intentar anteponer ese directorio a su PATH antes de ejecutar Python:

rem This fails
python -c "import numpy"

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

Infórmenos si ese directorio existe y si el cambio de ruta se realiza correctamente, indica que el código en numpy\__config__.py no modifica el os.environ['PATH'] . Quizás haya excedido la longitud permitida de PATH , o hay algún otro problema con su variable de entorno PATH .

Anaconda coloca los dlls adicionales en <anaconda install>\Library\bin y agrega ese directorio a la ruta cuando activa un entorno anaconda. Stock numpy, como se describió anteriormente, intenta agregar el directorio .lib al final de la variable PATH .

Todos 21 comentarios

Existe una diferencia entre la ubicación de las bibliotecas de soporte adicionales que se proporcionan con anaconda y las que se suministran con el número de existencias que obtiene de pip install . Esto requiere ajustes en la variable PATH . Quizás los ajustes de PATH estén fallando en la importación. ¿Existe el directorio site-packages\numpy\.libs y contiene archivos *.dll ?, Si es así, puede intentar anteponer ese directorio a su PATH antes de ejecutar Python:

rem This fails
python -c "import numpy"

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

Infórmenos si ese directorio existe y si el cambio de ruta se realiza correctamente, indica que el código en numpy\__config__.py no modifica el os.environ['PATH'] . Quizás haya excedido la longitud permitida de PATH , o hay algún otro problema con su variable de entorno PATH .

Anaconda coloca los dlls adicionales en <anaconda install>\Library\bin y agrega ese directorio a la ruta cuando activa un entorno anaconda. Stock numpy, como se describió anteriormente, intenta agregar el directorio .lib al final de la variable PATH .

¡Tu método realmente funciona!
C: \ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libs existe y hay un archivo en él:
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll

Probaré una instalación nueva con una ruta inicial más corta para verificar su theroy en aproximadamente una hora.

Pregunta secundaria: ¿No debería haber más dlls en ese camino? Quiero usar OpenMP y mkl con pytorch, no openblas ...

Si desea usar mkl, use conda, no pip

lo siento, use pip install intel-numpy no pip install numpy , pero obtendrá numpy 1.15.1 . Conda lo hace más fácil, y parece que estás usando anaconda, por lo que probablemente seguir con conda te dará una experiencia más unificada.

Ok, acorté mi PATH y todavía no funciona con "pip install numpy".
Esto se antepone a mi RUTA si "conda active test37":
RUTA = 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 \ compartimiento;...

Mi RUTA todavía es larga, pero ya no puedo eliminar nada de ella, porque otras herramientas lo necesitan como está.

¿Por qué no hay conda numpy 1.16.1?

¡Gracias por tu ayuda compañero!

(prueba37) D: \ prueba> pip instalar 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 da 1.15.4 que está funcionando bien.

@mattip MUCHAS GRACIAS

Tal vez deberíamos vincular estáticamente y aliviar la necesidad de esta alteración de caminos

¿Podría este problema de edición de PATH en numpy para las versiones más nuevas de Python tener la misma razón?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849 -> https://github.com/pytorch/pytorch/issues/17051

También obtuve el mismo tipo de error para scipy. Después de crear un env usando conda, tuve que desinstalar usando pip e instalar usando conda para todos los paquetes que me crearon un problema. Eso funcionó para mí, aunque no es una solución ideal ya que se trataba de una operación muy manual.

@djdookie : solo para estar seguro de qué funcionó y qué no. Tienes la dll en C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs . Anteponer eso a PATH antes de iniciar Python funcionó. ¿Podría intentar agregar eso al final de PATH (con un separador ';') y probar si un numpy instalado por pip funciona (tal vez en un nuevo entorno de conda, que cambiaría la ruta)?

Editar: tenga en cuenta que el nuevo entorno tendría una ruta a dll diferente

Parece que esta es una ananconda rota, vea este problema ContinuumIO / anaconda-issues # 10628

Clausura. Anaconda parece haber solucionado el problema que causó esto.

Acabo de descargar la versión más reciente de Windows de conda para python3.7 para Windows 7 y tengo este problema. ¿Podemos reabrir?

Soluciono el problema. Fue un problema de ruta ya que estaba usando WingIDE. Usé estas instrucciones para arreglar
https://wingware.com/blog/anaconda

Específicamente, abrí el símbolo del sistema anaconda e hice "PATH" y lo copié en mi ruta de ala para mi proyecto.

Como referencia, mi RUTA = 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;

Simplemente fui a la carpeta y borré una. Parece que eso lo arregló.

Esto también parece suceder en Jupyter si no "conda activa" el entorno que utilizará ANTES de iniciar Jupyter.

Y también sucede en VS Code si no "conda activa" el entorno ANTES de iniciar vs code. Si uso "código". en el indicador del entorno de conda, funciona.

Esto también parece suceder en Jupyter si no "conda activa" el entorno que utilizará ANTES de iniciar Jupyter.

Esto funcionó para mí. Y el problema parece particularmente en jupyter lab

Resolví mis problemas con los problemas de carga de Numpy DLL reemplazando Anaconda3 con WinPython.

Tengo este problema con WinPaython

¿Fue útil esta página
0 / 5 - 0 calificaciones