ImportError: tidak dapat mengimpor nama NUMPY_MKL

92

Saya mencoba menjalankan kode sederhana berikut

import scipy
scipy.test()

Tetapi saya mendapatkan kesalahan berikut

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 586, in runfile
    execfile(filename, namespace)
  File "C:/Users/Mustafa/Documents/My Python Code/SpectralGraphAnalysis/main.py", line 8, in <module>
    import scipy
  File "C:\Python27\lib\site-packages\scipy\__init__.py", line 61, in <module>
    from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl
ImportError: cannot import name NUMPY_MKL

Saya menggunakan python 2.7 di bawah windows 10.

Saya telah menginstal scipy tetapi tampaknya itu tidak menyelesaikan masalah

Bantuan apa pun dihargai.

Steve
sumber

Jawaban:

223

Jika Anda melihat baris yang menyebabkan kesalahan, Anda akan melihat ini:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

Komentar baris ini menyatakan ketergantungan sebagai numpy+mkl( numpydengan Intel Math Kernel Library ). Ini berarti bahwa Anda telah menginstal numpyoleh pip, tetapi scipytelah diinstal oleh arsip yang telah dikompilasi sebelumnya, yang diharapkan numpy+mkl.

Masalah ini dapat dengan mudah diselesaikan dengan menginstal numpy+mkldari file whl dari sini .

VMAtm
sumber
5
Solusi ini berfungsi untuk saya yang menjalankan Python 2.7.10 di Windows
ScottMcC
2
@VMAtm Dapatkah kita memiliki instalasi numpy (dari pip) dan numpy + mkl (dari lib yang telah dikompilasi) di virtualenv yang sama?
StrawhatLuffy
Sejauh yang saya tahu, jawabannya tidak. Mereka mencopot pemasangan satu sama lain, karena pada akhirnya numpy, hanya dengan beberapa instruksi prosesor (jika saya memahaminya dengan baik)
VMAtm
2
Solusi bekerja dengan sempurna pada python 2.7 windows 7. Menghemat banyak waktu saya terima kasih banyak!
sel
pip install <numpy wheel path> --user bekerja untuk saya karena saya mendapatkan masalah izin.
Amit Kumar
14

Instal ulang numpy-1.11.0_XXX.whl (untuk Python Anda) dari www.lfd.uci.edu/~gohlke/pythonlibs . File ini memiliki nama dan versi yang sama jika dibandingkan dengan varian yang saya unduh sebelumnya 29.03.2016, tetapi ukuran dan isinya berbeda dari varian lama. Setelah kesalahan instalasi ulang menghilang.

Opsi kedua - kembali ke scipy 0.17.0 dari 0.17.1

PS Saya menggunakan Python 3.5.1 versi Windows 64-bit, jadi tidak dapat menjamin bahwa numpy untuk Python 2.7 sudah diperbaiki.

Andrew
sumber
11

Saya tidak yakin apakah ini solusi yang baik tetapi itu menghilangkan kesalahan. Saya mengomentari baris:

from numpy._distributor_init import NUMPY_MKL 

dan itu berhasil. Tidak yakin apakah ini akan menyebabkan fitur lain rusak

Lenny
sumber
3
:) Yang menarik adalah itu benar-benar berfungsi dan tidak ada baris seperti itu di versi linux dari scipy.
dzmitry
7

Saya mengalami masalah yang sama saat menginstal gensim di windows. Gensim bergantung pada scipy dan scipy pada numpy. Membuat ketiganya bekerja sangat menyakitkan. Saya membutuhkan banyak waktu untuk membuat semua yang ada di sana bekerja pada waktu yang sama.

Solusi: Jika Anda menggunakan windows pastikan Anda menginstal numpy + mkl, bukan hanya numpy. Jika Anda telah menginstal scipy dan numpy, hapus instalan lalu gunakan "pip uninstall scipy" dan "pip uninstall numpy"

Kemudian unduh numpy-1.13.1 + mkl-cp34-cp34m-win32.whl dari http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy dan instal menggunakan pip install numpy-1.13.1 + mkl- cp34-cp34m-win32.wh Catatan: di cp34-cp34m 34 ​​mewakili versi python yang Anda gunakan, jadi unduh versi yang relevan.

Sekarang unduh scipy dari http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (versi yang sesuai untuk python dan sistem Anda) dan instal menggunakan "pip install scipy ‑ 0.19.1 ‑ cp34 ‑ cp34m ‑ win32. whl "

Numpy dan Scipy Anda keduanya harus bekerja sekarang. Binari dari Christoph Gohlke ini membuatnya sangat mudah untuk menginstal paket python di windows. Tetapi pastikan Anda mengunduh semua paket dependen dari sana.

pengguna3046442
sumber
Saya kembali ke python 3.4 dari 3.6 karena saya mengalami masalah saat menginstal scipy dengan python 3.6
user3046442
3

Saya tidak memiliki cukup reputasi untuk berkomentar tetapi saya ingin menambahkan, bahwa nomor cp dari file .whl adalah versi python Anda.

cp35 -> Python 3.5.x

cp36 -> Python 3.6.x

cp37 -> Python 3.7.x

Saya pikir itu cukup jelas tetapi saya masih menyia-nyiakan hampir satu jam karena ini dan mungkin orang lain juga berjuang dengan itu.

Jadi untuk saya bekerja versi cp36 yang saya unduh di sini: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy karena saya menggunakan Python 3.6.8.

Lalu saya mencopot pemasangan numpy:

pip uninstall numpy 

Kemudian saya memasang numpy + mkl:

pip install <destination of your .whl file>
Adrian
sumber
2

Alasan kesalahan tersebut adalah Anda mengupgrade library numpy Anda yang berisi beberapa fungsi dari scipy yang diperlukan oleh versi saat ini untuk menjalankannya yang mungkin tidak ditemukan di scipy. Cukup tingkatkan pustaka scipy Anda menggunakan python -m pip install scipy --upgrade. Saya menghadapi kesalahan yang sama dan solusi ini berfungsi pada python 3.5 saya.

Simbarashe Mupfurirwa
sumber
0

Dari log Anda jelas bahwa numpypaket tersebut hilang. Seperti yang disebutkan dalam paket PyPI :

Pustaka SciPy bergantung pada NumPy, yang menyediakan manipulasi larik N-dimensi yang mudah dan cepat.

Jadi, coba instal numpypaket untuk python seperti yang Anda lakukan dengan scipy.

manoj prashant k
sumber
3
Saya juga sudah menginstalnya. Untuk beberapa alasan saya harus menutup Spyder dan menjalankannya lagi dan itu menyelesaikan masalah. Terima kasih.
Steve
2
Kesalahan ini muncul meskipun numpy ada, jika numpy belum dikompilasi dengan dukungan MKL.
KDN
Bekerja. terima kasih scikit saya berasal dari lfd.uci.edu/~gohlke/pythonlibs Jadi harus menggunakan numpy dari distro yang sama
Anuvrat Tiku
0

Saya baru-baru ini mendapat kesalahan yang sama ketika mencoba memuat scipy di jupyter (python3.x, win10), meskipun baru saja meningkatkan ke numpy-1.13.3 + mkl melalui pip. Solusinya adalah dengan meningkatkan paket scipy (dari v0.19 ke v1.0.0).

EV
sumber
Saya hanya ingin memberikan perbaikan yang saya gunakan saat menghadapi masalah yang sangat mirip.
EV
0

ya, Instal ulang numpy, itu berhasil.

feng ling
sumber