ImportError : NUMPY_MKL 이름을 가져올 수 없습니다. runfile execfile(filename, namespace)

다음과 같은 간단한 코드를 실행하려고합니다.

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

Windows 10에서 Python 2.7을 사용하고 있습니다.

설치 scipy했지만 문제가 해결되지 않는 것 같습니다.

도움을 주시면 감사하겠습니다.



답변

오류를 일으키는 줄을 보면 다음과 같이 표시됩니다.

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

이 줄의 코멘트는 종속 상태 numpy+mkl( numpy인텔 수학 커널 라이브러리 ). 이는 numpyby를 설치 pip했지만 scipy은를 예상하는 사전 컴파일 된 아카이브에 의해 설치되었음을 의미합니다 numpy+mkl.

이 문제는 여기numpy+mkl 에서 whl 파일을 설치하여 쉽게 해결할 수 있습니다 .


답변

다시 설치 NumPy와-1.11.0_XXX.whl에서 (파이썬 용) www.lfd.uci.edu/~gohlke/pythonlibs . 이 파일은 2016 년 3 월 29 일 이전에 내가 다운로드 한 변형과 ​​비교하면 이름과 버전이 같지만 크기와 내용이 이전 변형과 다릅니다. 재설치 후 오류가 사라졌습니다.

두 번째 옵션-0.17.1에서 scipy 0.17.0으로 돌아 가기

추신 : Windows 64 비트 버전의 Python 3.5.1을 사용하므로 Python 2.7 용 numpy가 이미 수정되었다고 보장 할 수 없습니다.


답변

이것이 좋은 해결책인지 확실하지 않지만 오류를 제거했습니다. 나는 줄을 주석으로 처리했다.

from numpy._distributor_init import NUMPY_MKL 

그리고 그것은 작동했습니다. 이로 인해 다른 기능이 중단되는지 확실하지 않습니다.


답변

Windows에 gensim을 설치하는 동안 동일한 문제가 발생했습니다. Gensim은 scipy에 의존하고 scipy는 numpy에 의존합니다. 세 가지 작업을 모두 수행하는 것은 정말 고통 스럽습니다. 모든 작업을 동시에 처리하는 데 많은 시간이 걸렸습니다.

해결책 : Windows를 사용하는 경우 numpy 대신 numpy + mkl을 설치해야합니다. 이미 scipy 및 numpy를 설치 한 경우 “pip uninstall scipy”및 “pip uninstall numpy”를 사용하여 제거한 다음

그런 다음 http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 에서 numpy-1.13.1 + mkl-cp34-cp34m-win32.whl을 다운로드
하고 pip install numpy-1.13.1 + mkl-을 사용하여 설치합니다. cp34-cp34m-win32.wh 참고 : cp34-cp34m 34에서 사용중인 Python 버전을 나타내므로 관련 버전을 다운로드하십시오.

이제 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy(python 및 시스템에 적합한 버전) 에서 scipy를 다운로드 하고 “pip install scipy‑0.19.1‑cp34‑cp34m‑win32를 사용하여 설치합니다. whl “

이제 numpy와 Scipy가 모두 작동합니다. Christoph Gohlke의이 바이너리를 사용하면 Windows에 Python 패키지를 매우 쉽게 설치할 수 있습니다. 그러나 거기에서 모든 종속 패키지를 다운로드했는지 확인하십시오.


답변

나는 논평 할만한 평판이 충분하지 않지만 .whl 파일의 cp 번호가 파이썬 버전을 의미한다고 덧붙이고 싶습니다.

cp35-> Python 3.5.x

cp36-> Python 3.6.x

cp37-> Python 3.7.x

나는 그것이 꽤 명백하다고 생각하지만 여전히 나는 이것 때문에 거의 한 시간을 낭비했고 아마도 다른 사람들도 그것으로 어려움을 겪을 것입니다.

그래서
저는 Python 3.6.8을 사용하고 있기 때문에 https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy에서 다운로드 한 버전 cp36을 사용했습니다.

그런 다음 numpy를 제거했습니다.

pip uninstall numpy 

그런 다음 numpy + mkl을 설치했습니다.

pip install <destination of your .whl file>


답변

오류의 이유는 scipy에서 찾을 수없는 현재 버전에서 실행하는 데 필요한 scipy의 일부 기능이있는 numpy 라이브러리를 업그레이드했기 때문입니다. python -m pip install scipy –upgrade를 사용하여 scipy 라이브러리를 업그레이드하십시오. 나는 같은 오류에 직면 했고이 솔루션은 파이썬 3.5에서 작동했습니다.


답변

로그에서 numpy패키지가 누락 되었음을 분명히 알 수 있습니다. PyPI 패키지 에서 언급했듯이 :

SciPy 라이브러리는 편리하고 빠른 N 차원 배열 조작을 제공하는 NumPy에 의존합니다.

따라서 numpy.NET에서했던 것처럼 Python 용 패키지를 설치해보십시오 scipy.