Numpy: ImportError: Pemuatan DLL gagal untuk numpy 1.16.1

Dibuat pada 12 Feb 2019  ·  21Komentar  ·  Sumber: numpy/numpy

Buat virtual env baru dengan Anaconda Navigator 1.9.6 pada Windows 10, pilih Python 3.7, beri nama python37

Di konsol VSCode:

  • aktifkan python37
  • pip instal 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

(sama dengan parameter --no-cache-dir)

  • python
  • impor 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!

Semua saran, penginstalan ulang melalui pip dan conda, atau versi numpy yang berbeda (misalnya 1.15.4) tidak menyelesaikan masalah ini untuk saya.

Jika saya melakukan beberapa pip uninstall numpy sampai tidak ada numpy yang tersisa, dan kemudian melakukan instalasi numpy conda, mengimpor numpy bekerja dengan menarik (di 1.15.4).

A conda install numpy melakukan hal berikut:

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

Apa yang hilang untuk cara pip?
Ada ide?

00 - Bug 29 - InteAnaconda

Komentar yang paling membantu

Ada perbedaan antara lokasi pustaka dukungan tambahan yang disertakan dengan anaconda dan yang disertakan dengan stok numpy yang Anda dapatkan dari pip install . Ini membutuhkan penyesuaian pada variabel PATH . Mungkin penyesuaian PATH gagal saat diimpor. Apakah direktori site-packages\numpy\.libs ada dan berisi *.dll files ?, Jika demikian, dapatkah Anda mencoba menambahkan direktori itu ke PATH sebelum menjalankan python:

rem This fails
python -c "import numpy"

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

Silakan laporkan kembali kepada kami jika direktori itu ada dan jika mengubah jalur berhasil, ini menunjukkan kode di numpy\__config__.py gagal untuk mengubah os.environ['PATH'] . Mungkin Anda telah melebihi panjang PATH diperbolehkan, atau ada masalah lain dengan variabel lingkungan PATH .

Anaconda menempatkan dll ekstra di <anaconda install>\Library\bin , dan menambahkan direktori tersebut ke jalur saat Anda mengaktifkan lingkungan anaconda. Stock numpy, seperti dijelaskan di atas, mencoba menambahkan direktori .lib ke akhir variabel PATH .

Semua 21 komentar

Ada perbedaan antara lokasi pustaka dukungan tambahan yang disertakan dengan anaconda dan yang disertakan dengan stok numpy yang Anda dapatkan dari pip install . Ini membutuhkan penyesuaian pada variabel PATH . Mungkin penyesuaian PATH gagal saat diimpor. Apakah direktori site-packages\numpy\.libs ada dan berisi *.dll files ?, Jika demikian, dapatkah Anda mencoba menambahkan direktori itu ke PATH sebelum menjalankan python:

rem This fails
python -c "import numpy"

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

Silakan laporkan kembali kepada kami jika direktori itu ada dan jika mengubah jalur berhasil, ini menunjukkan kode di numpy\__config__.py gagal untuk mengubah os.environ['PATH'] . Mungkin Anda telah melebihi panjang PATH diperbolehkan, atau ada masalah lain dengan variabel lingkungan PATH .

Anaconda menempatkan dll ekstra di <anaconda install>\Library\bin , dan menambahkan direktori tersebut ke jalur saat Anda mengaktifkan lingkungan anaconda. Stock numpy, seperti dijelaskan di atas, mencoba menambahkan direktori .lib ke akhir variabel PATH .

Metode Anda memang berhasil!
C: \ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libs ada dan ada satu file di dalamnya:
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll

Saya akan mencoba penginstalan baru dengan jalur awal yang lebih pendek untuk memverifikasi perjanjian Anda dalam waktu sekitar satu jam.

Pertanyaan sampingan: Bukankah seharusnya ada lebih banyak dll di jalur itu? Saya ingin menggunakan OpenMP dan mkl dengan pytorch, bukan openblas ...

Jika Anda ingin menggunakan mkl, gunakan conda, bukan pip

maaf, gunakan pip install intel-numpy bukan pip install numpy , tetapi Anda akan mendapatkan 1.15.1 numpy . Conda membuatnya lebih mudah, dan sepertinya Anda menggunakan anaconda, jadi tetap menggunakan conda akan memberi Anda pengalaman yang lebih terpadu.

Ok saya mempersingkat PATH saya dan masih tidak berfungsi dengan "pip install numpy".
Ini ditambahkan ke PATH saya jika saya "conda mengaktifkan test37":
PATH = 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 \ tempat sampah;...

PATH saya masih panjang, tetapi saya tidak dapat menghapus apa pun darinya lagi, karena alat lain membutuhkannya seperti itu.

Mengapa tidak ada conda numpy 1.16.1?

Terima kasih atas bantuan Anda, sobat!

(test37) D: \ test> pip instal 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" memberi saya 1.15.4 yang berfungsi dengan baik.

@ mattip TERIMA KASIH BANYAK

Mungkin kita harus secara statis menghubungkan dan mengurangi kebutuhan akan jalur ini yang rusak

Mungkinkah masalah pengeditan PATH ini di numpy untuk versi python yang lebih baru memiliki alasan yang sama?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849 -> https://github.com/pytorch/pytorch/issues/17051

Saya mendapat jenis kesalahan yang sama untuk scipy juga. Setelah membuat env menggunakan conda, saya harus menghapus instalan menggunakan pip dan menginstal menggunakan conda untuk semua paket yang menimbulkan masalah bagi saya. Itu berhasil untuk saya, meskipun ini bukan solusi ideal karena ini adalah operasi yang sangat manual.

@djdookie : hanya untuk memastikan apa yang berhasil dan apa yang tidak. Anda memiliki dll di C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs . Mempersiapkan itu ke PATH sebelum memulai python bekerja. Bisakah Anda mencoba menambahkannya ke akhir PATH (dengan pemisah ';') dan menguji apakah numpy yang diinstal pip berfungsi (mungkin di lingkungan conda baru, yang akan mengubah jalur)?

Edit: perhatikan bahwa lingkungan baru akan memiliki jalur-ke-dll yang berbeda

Tampaknya ini adalah ananconda rusak, lihat edisi ini ContinuumIO / anaconda-issues # 10628

Penutupan. Anaconda tampaknya telah memperbaiki masalah yang menyebabkannya.

Saya baru saja mengunduh conda versi windows terbaru untuk python3.7 untuk windows 7 dan mendapatkan masalah ini. Bisakah kita buka kembali?

Saya memecahkan masalah. Itu adalah masalah jalur karena saya menggunakan WingIDE. Saya menggunakan instruksi ini untuk memperbaikinya
https://wingware.com/blog/anaconda

Secara khusus, saya membuka command prompt anaconda dan melakukan "PATH" dan menyalinnya ke jalur sayap saya untuk proyek saya.

Untuk referensi, PATH saya = 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;

Saya hanya pergi ke folder dan menghapus satu. Itu sepertinya sudah memperbaikinya.

Ini juga tampaknya terjadi di Jupyter jika Anda tidak "mengaktifkan conda" lingkungan yang akan Anda gunakan SEBELUMNYA untuk memulai Jupyter.

Dan itu juga terjadi di VS Code jika Anda tidak "mengaktifkan" lingkungan SEBELUM memulai kode vs. Jika saya menggunakan "kode". di prompt lingkungan conda, itu berhasil.

Ini juga tampaknya terjadi di Jupyter jika Anda tidak "mengaktifkan conda" lingkungan yang akan Anda gunakan SEBELUMNYA untuk memulai Jupyter.

Ini berhasil untuk saya. Dan masalahnya tampaknya terutama di lab jupyter

Saya menyelesaikan masalah saya dengan masalah pemuatan DLL Numpy dengan mengganti Anaconda3 dengan WinPython.

Saya memiliki masalah ini dengan WinPaython

Apakah halaman ini membantu?
0 / 5 - 0 peringkat