ImportError: ไม่สามารถนำเข้าชื่อ NUMPY_MKL


92

ฉันพยายามเรียกใช้โค้ดง่ายๆต่อไปนี้

import scipy
scipy.test()

แต่ฉันได้รับข้อผิดพลาดต่อไปนี้

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

ฉันใช้ python 2.7 ใน windows 10

ฉันได้ติดตั้งscipyแล้วแต่ดูเหมือนจะไม่สามารถแก้ปัญหาได้

ขอความช่วยเหลือใด ๆ

คำตอบ:


223

หากคุณดูบรรทัดที่ทำให้เกิดข้อผิดพลาดคุณจะเห็นสิ่งนี้:

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

ข้อคิดเห็นบรรทัดนี้ระบุการอ้างอิงเป็นnumpy+mkl( numpyด้วยIntel Math Kernel Library ) ซึ่งหมายความว่าคุณได้ติดตั้งnumpyโดยpipแต่scipyถูกติดตั้งโดยเก็บ precompiled numpy+mklซึ่งคาดว่า

ปัญหานี้สามารถแก้ไขได้ง่ายโดยการติดตั้งnumpy+mklจากไฟล์ WHL จากที่นี่


5
วิธีนี้ใช้ได้ผลสำหรับฉันที่ใช้ Python 2.7.10 บน Windows
ScottMcC

2
@VMAtm เราสามารถติดตั้งทั้ง numpy (จาก pip) และ numpy + mkl (จาก libs ที่คอมไพล์ไว้แล้ว) ใน Virtualenvs เดียวกันได้หรือไม่?
StrawhatLuffy

เท่าที่ฉันรู้คำตอบคือไม่ พวกเขากำลังยกเลิกการติดตั้งซึ่งกันและกันเนื่องจากเป็นอาการมึนงงในตอนท้ายมีเพียงคำสั่งโปรเซสเซอร์บางอย่าง (ถ้าฉันเข้าใจดี)
VMAtm

2
โซลูชันทำงานได้อย่างสมบูรณ์บน python 2.7 windows 7 ช่วยฉันประหยัดเวลาได้มากขอบคุณโหล!
เซล

pip install <numpy wheel path> - ผู้ใช้ทำงานให้ฉันเนื่องจากฉันได้รับปัญหาการอนุญาต
Amit Kumar

14

ติดตั้ง numpy-1.11.0_XXX.whl (สำหรับงูหลามของคุณ) จากwww.lfd.uci.edu/~gohlke/pythonlibs ไฟล์นี้มีชื่อและเวอร์ชันเดียวกันหากเปรียบเทียบกับเวอร์ชันที่ดาวน์โหลดโดยฉันก่อนหน้านี้เมื่อวันที่ 29.03.2016 แต่ขนาดและเนื้อหาแตกต่างจากเวอร์ชันเก่า หลังจากติดตั้งใหม่ข้อผิดพลาดหายไป

ตัวเลือกที่สอง - กลับไปที่ scipy 0.17.0 จาก 0.17.1

ป.ล. ฉันใช้ Python 3.5.1 เวอร์ชัน 64 บิตของ Windows ดังนั้นจึงไม่สามารถรับประกันได้ว่า numpy สำหรับ Python 2.7 ได้รับการแก้ไขแล้ว


11

ฉันไม่แน่ใจว่านี่เป็นวิธีแก้ปัญหาที่ดีหรือไม่ แต่ได้ลบข้อผิดพลาดออกไป ฉันแสดงความคิดเห็นในบรรทัด:

from numpy._distributor_init import NUMPY_MKL 

และมันได้ผล ไม่แน่ใจว่าจะทำให้ฟีเจอร์อื่น ๆ พังหรือไม่


3
:) สิ่งที่น่าสนใจคือมันใช้งานได้จริงและไม่มีบรรทัดดังกล่าวใน scipy เวอร์ชัน linux
dzmitry

7

ฉันมีปัญหาเดียวกันขณะติดตั้ง gensim บน windows Gensim ขึ้นอยู่กับ scipy และ scipy บน numpy การทำทั้งสามงานเป็นความเจ็บปวดอย่างแท้จริง ฉันใช้เวลานานมากในการทำให้ทุกอย่างพร้อมกัน

วิธีแก้ไข: หากคุณใช้ windows ตรวจสอบให้แน่ใจว่าคุณติดตั้ง numpy + mkl แทนที่จะเป็นแค่ numpy หากคุณได้ติดตั้ง scipy และ numpy แล้วให้ถอนการติดตั้งโดยใช้ "pip uninstall scipy" และ "pip uninstall numpy"

จากนั้นดาวน์โหลด numpy-1.13.1 + mkl-cp34-cp34m-win32.whl จากhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy และติดตั้งโดยใช้ pip install numpy-1.13.1 + mkl- cp34-cp34m-win32.wh หมายเหตุ: ใน cp34-cp34m 34 ​​แสดงถึงเวอร์ชันของ python ที่คุณใช้อยู่ดังนั้นให้ดาวน์โหลดเวอร์ชันที่เกี่ยวข้อง

ตอนนี้ดาวน์โหลด scipy จากhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (เวอร์ชันที่เหมาะสมสำหรับ python และระบบของคุณ) และติดตั้งโดยใช้ "pip install scipy ‑ 0.19.1 ‑ cp34 ‑ cp34m ‑ win32 whl "

ทั้งมึนงงและ Scipy ของคุณควรใช้งานได้แล้ว ไบนารีเหล่านี้โดย Christoph Gohlke ทำให้การติดตั้งแพ็คเกจ python บน windows เป็นเรื่องง่ายมาก แต่ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดแพ็คเกจที่เกี่ยวข้องทั้งหมดจากที่นั่น


ฉันเปลี่ยนกลับเป็น python 3.4 จาก 3.6 เนื่องจากฉันมีปัญหาในการติดตั้ง scipy ด้วย python 3.6
user3046442

3

ฉันไม่มีชื่อเสียงมากพอที่จะแสดงความคิดเห็น แต่ฉันต้องการเพิ่มว่าหมายเลข cp ของไฟล์. wl ย่อมาจากเวอร์ชัน python ของคุณ

cp35 -> Python 3.5.x

cp36 -> Python 3.6.x

cp37 -> Python 3.7.x

ฉันคิดว่ามันค่อนข้างชัดเจน แต่ฉันก็ยังเสียเวลาไปเกือบชั่วโมงเพราะเหตุนี้และคนอื่น ๆ ก็อาจจะต้องดิ้นรน

สำหรับฉันใช้เวอร์ชัน cp36 ที่ฉันดาวน์โหลดมาที่นี่: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy เนื่องจากฉันใช้ Python 3.6.8

จากนั้นฉันถอนการติดตั้ง numpy:

pip uninstall numpy 

จากนั้นฉันติดตั้ง numpy + mkl:

pip install <destination of your .whl file>

2

สาเหตุของข้อผิดพลาดคือคุณอัปเกรดไลบรารี numpy ของคุณซึ่งมีฟังก์ชันบางอย่างจาก scipy ที่เวอร์ชันปัจจุบันต้องการเพื่อให้ทำงานได้ซึ่งอาจไม่พบใน scipy เพียงอัปเกรดไลบรารี scipy ของคุณโดยใช้ python -m pip install scipy --upgrade ฉันพบข้อผิดพลาดเดียวกันและวิธีนี้ใช้ได้กับ python 3.5 ของฉัน


0

จากบันทึกของคุณเห็นได้ชัดว่าไม่มีnumpyแพ็คเกจ ตามที่กล่าวไว้ในแพ็คเกจ PyPI :

ไลบรารี SciPy ขึ้นอยู่กับ NumPy ซึ่งให้การจัดการอาร์เรย์ N มิติที่สะดวกและรวดเร็ว

ดังนั้นลองติดตั้งแพคเกจสำหรับหลามที่คุณทำกับnumpyscipy


3
ฉันยังติดตั้งที่ ด้วยเหตุผลบางอย่างฉันต้องปิด Spyder และเรียกใช้อีกครั้งและนั่นช่วยแก้ปัญหาได้ ขอบคุณต่อไป
สตีฟ

2
ข้อผิดพลาดนี้เกิดขึ้นแม้ว่าจะมี numpy อยู่ แต่ถ้าไม่ได้รวบรวม numpy ด้วยการสนับสนุน MKL
KDN

ทำงานแล้ว. ขอบคุณ scikit ของฉันมาจากlfd.uci.edu/~gohlke/pythonlibsดังนั้นต้องใช้ numpy จาก distro เดียวกัน
Anuvrat Tiku

0

ฉันเพิ่งได้รับข้อผิดพลาดเดียวกันเมื่อพยายามโหลด scipy ใน jupyter (python3.x, win10) แม้ว่าจะเพิ่งอัปเกรดเป็น numpy-1.13.3 + mkl ผ่าน pip วิธีแก้ปัญหาคือเพียงแค่อัพเกรดแพ็คเกจ scipy (จาก v0.19 เป็น v1.0.0)


ฉันแค่ต้องการให้การแก้ไขที่ฉันใช้เมื่อพบปัญหาที่คล้ายกันมาก
EV

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.