Numpy: ImportError:numpy1.16.1のDLLロードに失敗しました

作成日 2019年02月12日  ·  21コメント  ·  ソース: numpy/numpy

Windows10でAnacondaNavigator 1.9.6を使用して新しい仮想環境を作成し、Python 3.7を選択して、python37という名前を付けます。

VSCodeのコンソールで:

  • python37をアクティブ化する
  • pip install 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

(パラメーター--no-cache-dirと同じ)

  • Python
  • 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!

すべてのアドバイス、pipとcondaを介した再インストール、または異なるnumpyバージョン(1.15.4など)では、この問題は解決しませんでした。

numpyがなくなるまで複数のpipアンインストールnumpyを実行してから、conda install numpyを実行すると、numpyのインポートが興味深いことに機能します(1.15.4)。

conda installnumpyは次のことを行います。

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

ピップウェイには何が欠けていますか?
何か案は?

00 - Bug 29 - InteAnaconda

最も参考になるコメント

anacondaで提供される追加のサポートライブラリの場所と、 pip installから取得するstocknumpyで提供されるライブラリの場所には違いがあります。 これには、 PATH変数の調整が必要です。 おそらく、 PATH調整がインポート時に失敗しています。 site-packages\numpy\.libsディレクトリが存在し、 *.dllファイルが含まれていますか?存在する場合、Pythonを実行する前にそのディレクトリをPATH前に追加してみてください。

rem This fails
python -c "import numpy"

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

そのディレクトリが存在し、パスを変更することが成功すれば、それは内のコードを示している場合、私たちに戻って報告してくださいnumpy\__config__.py修正するために失敗しているos.environ['PATH'] 。 許可されたPATH長さを超えているか、 PATH環境変数に他の問題がある可能性があります。

Anacondaは追加のdllを<anaconda install>\Library\binに配置し、anaconda環境をアクティブ化すると、そのディレクトリをパスに追加します。 上記のように、Stock numpyは、 PATH変数の最後に.libディレクトリを追加しようとします。

全てのコメント21件

anacondaで提供される追加のサポートライブラリの場所と、 pip installから取得するstocknumpyで提供されるライブラリの場所には違いがあります。 これには、 PATH変数の調整が必要です。 おそらく、 PATH調整がインポート時に失敗しています。 site-packages\numpy\.libsディレクトリが存在し、 *.dllファイルが含まれていますか?存在する場合、Pythonを実行する前にそのディレクトリをPATH前に追加してみてください。

rem This fails
python -c "import numpy"

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

そのディレクトリが存在し、パスを変更することが成功すれば、それは内のコードを示している場合、私たちに戻って報告してくださいnumpy\__config__.py修正するために失敗しているos.environ['PATH'] 。 許可されたPATH長さを超えているか、 PATH環境変数に他の問題がある可能性があります。

Anacondaは追加のdllを<anaconda install>\Library\binに配置し、anaconda環境をアクティブ化すると、そのディレクトリをパスに追加します。 上記のように、Stock numpyは、 PATH変数の最後に.libディレクトリを追加しようとします。

あなたの方法は確かに機能します!
C:\ Users \ Name.conda \ envs \ test37 \ Lib \ site-packages \ numpy.libsが存在し、その中に1つのファイルがあります。
libopenblas.IPBC74C7KURV7CB2PKT5Z5FNR3SIBV4J.gfortran-win_amd64.dll

約1時間であなたのtheroyを確認するために、より短い初期パスで新規インストールを試みます。

副次的な質問:そのパスにもっと多くのdllがあるべきではありませんか? openblasではなくpytorchでOpenMPとmklを使いたい...

mklを使用する場合は、pipではなくcondaを使用してください

申し訳ありませんが、 pip install numpyではなくpip install intel-numpy使用しますが、 numpy1.15.1が表示されます。 Condaを使用すると簡単になり、anacondaを使用しているように見えるので、おそらくcondaを使用すると、より統一されたエクスペリエンスが得られます。

PATHを短くしましたが、「pipinstallnumpy」ではまだ機能しません。
「condaactivatetest37」の場合、これはPATHの前に追加されます。
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 \置き場;...

私のPATHはまだ長いですが、他のツールがそのまま必要としているため、PATHから何も削除できなくなりました。

conda numpy 1.16.1がないのはなぜですか?

あなたの助けをありがとう、仲間!

(test37)D:\ test> pip install 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

「condainstallnumpy」は、正常に動作している1.15.4を提供します。

@mattipどうもありがとうございました

たぶん、静的にリンクして、このパスマングリングの必要性を軽減する必要があります

新しいPythonバージョンのnumpyでのこのPATH編集の問題にも同じ理由がありますか?
https://github.com/pytorch/pytorch/issues/4518#issuecomment-463224849-> https://github.com/pytorch/pytorch/issues/17051

scipyでも同じタイプのエラーが発生しました。 condaを使用してenvを作成した後、問題を引き起こしたすべてのパッケージに対して、pipを使用してアンインストールし、condaを使用してインストールする必要がありました。 これは非常に手動の操作であったため、理想的な解決策ではありませんが、それは私にとってはうまくいきました。

@djdookie :何が機能し、何が機能しなかったかを確認するためだけに。 C:\Users\Name.conda\envs\test37\Lib\site-packages\numpy.libs dllがあります。 Pythonを起動する前にPATHの前にそれを追加すると機能しました。 それをPATHの最後に( ';'区切り文字を使用して)追加し、pipでインストールされたnumpyが機能するかどうかをテストしてみてください(おそらく、パスを変更する新しいconda環境で)?

編集:新しい環境ではdllへのパスが異なることに注意してください

これは壊れたアナコンダのようです。この問題を参照してくださいContinuumIO / anaconda-issues#10628

閉鎖。 アナコンダはこれを引き起こした問題を修正したようです。

Windows7用のpython3.7用のcondaの最新のWindowsバージョンをダウンロードしたところ、この問題が発生しました。 再開できますか?

私は問題を解決します。 WingIDEを使用していたので、これはパスの問題でした。 これらの手順を使用して修正しました
https://wingware.com/blog/anaconda

具体的には、anacondaコマンドプロンプトを開いて「PATH」を実行し、プロジェクトのウィングパスにコピーしました。

参考までに、私のPATH = 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;

フォルダに移動して削除しました。 それはそれを修正したようです。

これは、Jupyterを起動する前に使用する環境を「condaactivate」しない場合にもJupyterで発生するようです。

また、vs codeを起動する前に環境を「condaactivate」しない場合、VSCodeでも発生します。 「コード」を使うと。 conda環境プロンプトでは、動作します。

これは、Jupyterを起動する前に使用する環境を「condaactivate」しない場合にもJupyterで発生するようです。

これは私のために働いた。 そして、この問題は特にjupyterlabで発生しているようです

Anaconda3をWinPythonに置き換えることで、NumpyDLLの読み込みの問題を解決しました。

WinPaythonでこの問題が発生しました

このページは役に立ちましたか?
0 / 5 - 0 評価