web-dev-qa-db-ja.com

ImportError:名前NUMPY_MKLをインポートできません

次の簡単なコードを実行しようとしています

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

私は窓10の下でpython 2.7を使用しています。

scipyをインストールしましたが、それで問題が解決するとは思われません

任意の助けは大歓迎です。

91
Steve

エラーの原因となっている行を見ると、これがわかります。

from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

この行コメントは、依存関係をnumpy+mkl((numpy with Intel Math Kernel Library )として示しています。これはnumpypipでインストールしたが、scipyはプリコンパイルされたアーカイブでインストールされたことを意味します。これにはnumpy+mklが必要です。

この問題はwhlファイルからnumpy+mklこちらからインストールすることで簡単に解決できます

222
VMAtm

www.lfd.uci.edu/~gohlke/pythonlibs から(あなたのPython用の)numpy-1.11.0_XXX.whlを再インストールします。このファイルは2016年3月29日以前に私がダウンロードしたバリアントと比較すると同じ名前とバージョンを持っていますが、そのサイズと内容は古いバリアントとは異なります。再インストールエラーが消えた後。

2番目の選択肢 - 0.17.1からscipy 0.17.0に戻る

P.S私はWindows 64ビット版のPython 3.5.1を使用していますので、Python 2.7の派手さがすでに修正されていることを保証することはできません。

14
Andrew

これが良い解決策かどうかはわかりませんが、エラーが取り除かれました。私はその行をコメントアウトしました:

from numpy._distributor_init import NUMPY_MKL 

そしてそれはうまくいった。これが他の機能を壊す原因になるかどうかわかりません

11
Lenny

Windowsにgensimをインストールしているときに同じ問題がありました。 Gensimはscipyに依存しています。 3つすべての仕事をすることは本当の痛みです。それがすべて同じ時間に機能するようにするには、多くの時間がかかりました。

解決策:あなたがウィンドウズを使用しているならば、あなたはただnumpyの代わりにnumpy + mklをインストールすることを確認してください。既に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のバージョンを表すため、関連するバージョンをダウンロードしてください。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy (お使いのPythonとシステムに適したバージョン)からscipyをダウンロードし、 "pip install"を使ってインストールしてください。 scipy-0.19.1-cp34-cp34m-win32.whl "

あなたのでんぷんとScipyは両方とも今動作するはずです。 Christoph Gohlkeによるこれらのバイナリは、pythonパッケージをWindowsにインストールすることを非常に簡単にします。しかし、そこからすべての依存パッケージをダウンロードするようにしてください。

7
user3046442

エラーの原因はあなたがそれを実行するために現在のバージョンに必要なscipyからいくつかの機能がscipyにないかもしれないあなたのnumpyライブラリをアップグレードしたことです。 python -m pip install scipy --upgradeを使用してscipyライブラリをアップグレードするだけです。私は同じエラーに直面していました、そして、この解決策は私のPython 3.5で動きました。

私はコメントするのに十分な評判を持っていません、しかし、私は加えたいと思います、.whlファイルのcp番号はあなたのpythonバージョンを表します。

cp35 - > Python 3.5.x

cp36 - > Python 3.6.x

cp37 - > Python 3.7.x

私はそれがかなり明白であると思うが、それでも私はこれのためにほぼ1時間を無駄にし、そしておそらく他の人々もそれに苦労している。

だから私のために私がここでダウンロードしたバージョン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>
1
Adrian

あなたのログから、numpyパッケージが見つからないことが明らかです。 PyPIパッケージ で述べたように、

SciPyライブラリはNumPyに依存しており、NumPyは便利で高速なN次元配列操作を提供します。

numpyと同じように、python用のscipyパッケージをインストールしてみてください。

0

私は最近jupyter(python3.x、win10)でscipyをロードしようとしたときに同じエラーを受けましたが、pipを通してnumpy-1.13.3 + mklにアップグレードしたばかりです。解決策はscipyパッケージを単純にアップグレードすることでした(v0.19からv1.0.0)。

0
E. V.

はい、ただでたらめな再インストール、それは動作します。

0
feng ling