web-dev-qa-db-ja.com

sklearnモジュールをインポートしようとしたときにエラーが発生しました:ImportError:DLLロード失敗:指定されたモジュールが見つかりませんでした

機械学習プロジェクトで次のインポートを実行しようとしました。

from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression

このエラーメッセージが表示されました:

Traceback (most recent call last):
  File "C:/Users/Abdelhalim/PycharmProjects/ML/stock pricing.py", line 4, in <module>
    from sklearn import preprocessing, cross_validation, svm
  File "C:\Python27\lib\site-packages\sklearn\__init__.py", line 57, in <module>
    from .base import clone
  File "C:\Python27\lib\site-packages\sklearn\base.py", line 12, in <module>
    from .utils.fixes import signature
  File "C:\Python27\lib\site-packages\sklearn\utils\__init__.py", line 11, in <module>
    from .validation import (as_float_array,
  File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 18, in <module>
    from ..utils.fixes import signature
  File "C:\Python27\lib\site-packages\sklearn\utils\fixes.py", line 291, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\__init__.py", line 112, in <module>
    from .isolve import *
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 7, in <module>
    from . import _iterative
ImportError: DLL load failed: The specified module could not be found.

私がすべてを試しましたが何もうまくいかないのを助けてください。私もこれらの解決策を試しました: ImportError:DLLロードに失敗しました:Lemodulespécifiéestintrouvable

ImportError:DLLロードに失敗しました:指定されたモジュールが見つかりませんでした

「C:\ Python27\lib\site-packages\sklearn\utils\fixes.py」を開いて内容を編集する必要があります。行う必要のある特定の変更が2つあります。

最初https://github.com/scikit-learn/scikit-learn/blob/の内容をコピーして貼り付けます74a9756fa784d1f22873ad23c8b4948c6e290108/sklearn/utils/fixes.py ファイル「C:\ Python27\lib\site-packages\sklearn\utils\fixes.py」に。

Secondnp_version < (1, 12, 0):の場合は行をif np_version < (1, 12):に置き換えます。

詳細な背景情報と詳細情報 ここ 、ユーザーからのすばらしい回答 [〜#〜] dsm [〜#〜] .

2
Joseph Lemien

この線はscipyを指しています。

from scipy.sparse.linalg import lsqr as sparse_lsqr

あなたが試すことができます:

pip uninstall scipy

pip install scipy

楽しい!

13
chaggy

使用するライブラリの代わりに、このnumpyライブラリをインストールします。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

Intel Math Kernal Libaryがインストールされていると思います。

1
Markus Appel

@saggyのようなばかげた解決策を見つけました。コマンドラインからスクリプトを繰り返し実行し、「DLLエラー」を比較してパッケージ/モジュール/ライブラリ/ wattelapescaの名前を探し、次にpip uninstall thatPackageを再インストールします

擬似コードとして:

notWorking = true
while( nonFunge ){
    run_the_script_from_command_line()
    output = get_last_cmd_output()
    if( "ImportError: DLL load failed: blabla" in output ){
        doomed_package = look_for_package_module_library_wattelapesca(output)
        exec("pip uninstall " + doomed_package )
        exec("pip install " + doomed_package )
    }else # all ok, the script works
         notWorking = false
}
0
Marco Ottina

私の場合、conda envでscipyをアンインストールしてから、pipを使用して再インストールします。

アンインストール: conda remove --force scipy

インストール:pip install scipy

0
user13266199