Scikit-learn: 更新後:ImportError:Windowsコンピューターにmodel_selectionという名前のモジュールがありません

作成日 2016年01月13日  ·  17コメント  ·  ソース: scikit-learn/scikit-learn

で正常に更新した後
conda update scikit-learn
Windowsコンピューター上
sklearn.model_selectionからインポートGridSearchCV
また
sklearn.model_selectionからimporttrain_test_split
与える
ImportError:model_selectionという名前のモジュールがありません
しかし、scikit-learnは更新後にのみ作業を開始しました
conda install -f scipy
あたり
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
ちなみに、この例は正常に実行されています
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-document-classification-20newsgroups-py

最も参考になるコメント

model_selectionモジュールは、次のリリース(0.18)からのみ利用可能になります。 古いcross_validationモジュールを使用する必要があります!

全てのコメント17件

model_selectionモジュールは、次のリリース(0.18)からのみ利用可能になります。 古いcross_validationモジュールを使用する必要があります!

これはバグではないため、終了します。

わかりましたが、ファイルexercise_02_sentiment.pyの作業コードを取得するのに役立ちますか?
http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.htmlから
書かれているように
このチュートリアルのソースは、scikit-learnフォルダー内にあります。
scikit-learn / doc / tutorial / text_analytics /

安定したドキュメントのWebサイトからコードをダウンロードするか、リポジトリの0.17.Xブランチをチェックアウトできます。

この問題は2016年1月にクローズされましたが、引き続き関連性があります(2016年10月)。 解決:

 ## [2016年10月19日] Python3.5仮想環境
 (py35)[victoria @ victoria〜] $ conda install scikit-learn
 ..。
 次の新しいパッケージがインストールされます。
 scikit-learn:0.18-np111py35_0
 ..。
 (py35)[victoria @ victoria〜] $コンダリスト| grep scikit
 scikit-learn 0.18 np111py35_0 
 ## Python 3.5:
 >>> sklearn.model_selection importtrain_test_splitから
 トレースバック(最後の最後の呼び出し):
 ファイル ""、1行目、
 ImportError:「sklearn.model_selection」という名前のモジュールがありません
 ##シェル:
 $ conda install -f scipy
 ..。
 次の新しいパッケージがインストールされます。
 scipy:0.18.1-np111py35_0
 ..。
 ## Python:同じインポートエラー!! Grrrrrrr.....。
 ## http://scikit-learn.org/stable/install.html
 「numpyとscipyのインストールがすでに機能している場合、scikit-learnをインストールする最も簡単な方法はpipを使用することです。

 pip install -U scikit-learn

 またはコンダ:

 conda install scikit-learn "
 $ pip install -U scikit-learn
 scikit-learnの収集
 scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl(11.3MB)のダウンロード
 100%|████████████████████████████████| 11.3MB 162kB / s 
 収集したパッケージのインストール:scikit-learn
 既存のインストールが見つかりました:scikit-learn 0.17.1
 非推奨:distutilsでインストールされたプロジェクト(scikit-learn)のアンインストールは非推奨になり、将来のバージョンで削除される予定です。 これは、distutilsプロジェクトをアンインストールすると、プロジェクトが部分的にしかアンインストールされないためです。
 scikit-learn-0.17.1のアンインストール:
 scikit-learn-0.17.1が正常にアンインストールされました
 scikit-learn-0.18が正常にインストールされました
 ##インポートに成功しました:
 (py35)[victoria @ victoria〜] $ P
 [P:python]
 Python 3.5.2(デフォルト、2016年6月28日、08:46:01) 
 Linux上の[GCC6.1.1 20160602]
 詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 >>> sklearn.model_selection importtrain_test_splitから
 >>> 
 >>> [Ctrl-D /終了]
 (py35)[victoria @ victoria〜] $ ## :-D

 QED

うーん、 @ victoriastuartの問題はないようです。 環境をアクティブ化している/ conda install scikit-learnを使用している環境にPythonがあることを確認しますか?

nfliu at kilauea in ~
$ conda create -n test python=3
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0
    pip:        8.1.2-py35_0
    python:     3.5.2-0
    readline:   6.2-2
    setuptools: 27.2.0-py35_0
    sqlite:     3.13.0-0
    tk:         8.5.18-0
    wheel:      0.29.0-py35_0
    xz:         5.2.2-0
    zlib:       1.2.8-3

Proceed ([y]/n)? y

Linking packages ...
[      COMPLETE      ]|###################################################| 100%
#
# To activate this environment, use:
# > source activate test
#
# To deactivate this environment, use:
# > source deactivate test
#

nfliu at kilauea in ~
$ source activate test
(test) nfliu at kilauea in ~
$ conda install scikit-learn
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/nfliu/miniconda2/envs/test:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    numpy-1.11.2               |           py35_0         2.7 MB
    scipy-0.18.1               |      np111py35_0        12.3 MB
    scikit-learn-0.18          |      np111py35_0         4.6 MB
    ------------------------------------------------------------
                                           Total:        19.6 MB

The following NEW packages will be INSTALLED:

    mkl:          11.3.3-0
    numpy:        1.11.2-py35_0
    scikit-learn: 0.18-np111py35_0
    scipy:        0.18.1-np111py35_0

Proceed ([y]/n)? y

Fetching packages ...
numpy-1.11.2-p 100% |#############################################################################################################################################################################################| Time: 0:00:01   1.57 MB/s
scipy-0.18.1-n 100% |#############################################################################################################################################################################################| Time: 0:00:02   6.30 MB/s
scikit-learn-0 100% |#############################################################################################################################################################################################| Time: 0:00:01   2.66 MB/s
Extracting packages ...
[      COMPLETE      ]|################################################################################################################################################################################################################| 100%
Linking packages ...
[      COMPLETE      ]|################################################################################################################################################################################################################| 100%
(test) nfliu at kilauea in ~
$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn.model_selection import train_test_split
>>>

@ nelson-liu:ご提案ありがとうございます...はい:私はずっとPython 3.5仮想環境(ターミナル; Python)で作業していました。 私の答えによると、今働いています。 :-)

@victoriastuartこれがあなたに起こったことはかなり確かです(大きな赤いボックスを参照):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platforms

pipでインストールしたcondaでパッケージをアップグレードしようとしないでください。 うまくいかないだろう。 これはsetuptoolsのバグです。

@ amueller-これが問題です:私はCONDAがインストールされたvenvにいます:最初はsklearnが存在しなかったと確信しています(このvenvで以前に使用したことがないので、以前にインストールされていなかったでしょう) 、たとえばpip経由;それにもかかわらず、私は常にpipよりもcondaを好みます-最初に、私のvenvで-最後の手段としてpipを使用します):

 (py35)[victoria @ victoria〜] $ conda install scikit-learn
パッケージメタデータの取得.....。
パッケージ仕様の解決:.........。
環境/ home / victoria / anaconda3 / envs / py35にインストールするためのパッケージプラン:
次のパッケージがダウンロードされます。
 パッケージ| 建てる
 --------------------------- | -----------------
 numpy-1.11.2 | py35_0 6.1 MB
 scipy-0.18.1 | np111py35_0 30.4 MB
 scikit-learn-0.18 | np111py35_0 10.8 MB
 theano-0.8.2 | py35_0 3.7 MB
 -------------------------------------------------- ----------
 合計:51.0 MB
次の新しいパッケージがインストールされます。
 scikit-learn:0.18-np111py35_0 
次のパッケージが更新されます。
 astropy:1.1.2-np110py35_0-> 1.2.1-np111py35_0 
 ボトルネック:1.0.0-np110py35_1-> 1.1.0-np111py35_0 
 matplotlib:1.5.1-np110py35_0-> 1.5.1-np111py35_0 
 numpy:1.10.4-py35_2-> 1.11.2-py35_0 
 scipy:0.17.1-np110py35_1-> 0.18.1-np111py35_0
 theano:0.7.0-np110py35_0-> 0.8.2-py35_0 
続行しますか([y] / n)? 
 [... をちょきちょきと切る ...]

上記の注:

次の新しいパッケージがインストールされます:scikit-learn:0.18-np111py35_0

したがって、要約すると、標準およびsklearn-recommended(http://scikit-learn.org/stable/install.html)の手順に従って、sklearnをインストールします-明らかにOK(警告なし)をインストールしてから、それを使用しようとします:失敗難解なエラーメッセージを表示してインポートするには>> Google検索>>このページ。 私はこれまたはそれについてのすべての細目(sklearn viz-a-viz NumPyまたはSciPy、...)に感謝しますが、重要な点は、ユーザーとして、この問題を解決するために作業する必要があったということです。スレッド)一部のユーザーに対して継続中です。

問題は、実際には、stackoverflowの回答がまだconda / pipに公開されていないコードを参照していたことでした(2週間前に公開したばかりなので、当然、コードはそれまでconda / pipがインストールされたバージョンでは機能しませんでした)。 あなたの問題は少し無関係のようですが、それでも問題なく機能してくれてうれしいです。

@ nelson-liu:lolありがとう-そしてこのプロジェクト/開発に関係するすべての人々。 私はそれがめちゃくちゃ複雑であることを知っています、そしてここで報告されたような合併症は避けられない現実です。 とにかく、上に要約したように、私のsklearnインストールは現在機能しているようです。 [数時間で使い始めます。]上記の議論が他の人に情報を提供したり助けたりすることを願っています。 繰り返しになりますが、多くの感謝を! :-)

@victoriastuart imは、あなたがもう周りにコンダ環境を持っていないことを前提としています/それを再び再現することはできませんが、私は何を見てみたいと思います:

>>> import sklearn
>>> sklearn.__version__

降伏するでしょう(私はそれが私たちが思っているものではない、つまり0.18ではないと思っています)。
$ PYTHONPATHの問題であり、おそらく他の場所からscikit-learnを描画しているのではないかと思います。 このようなエラーを修正することで、他のパッケージでこのようなエラーを回避できれば幸いです。

@ nelson-liu:確かに、問題ありません! ;-)

 ----------------------------
 PYTHON 3.5 VENV(py35 | p3):
 ----------------------------
 [ビクトリア@ビクトリアバンクーバー] $ p3
 [Anaconda Python 3.5 venv(ソースアクティベートpy35)]
 (py35)[victoria @victoria Vancouver] $ which python
 / home / victoria / anaconda3 / envs / py35 / bin / python
 (py35)[victoria @victoria Vancouver] $コンダリスト| egrep -wi'scikit | numpy | scipy '
 numpy 1.11.2 py35_0
 scikit-learn 0.18 np111py35_0
 scipy 0.18.1 np111py35_0
 (py35)[victoria @victoria Vancouver] $ピップリスト| egrep -wi'scikit | numpy | scipy '
 numpy(1.11.1)
 scikit-image(0.12.3)
 scikit-learn(0.18)
 scipy(0.17.0)
 (py35)[victoria @victoria Vancouver] $ P
 [P:python]
 Python 3.5.2(デフォルト、2016年6月28日、08:46:01)
 Linux上の[GCC6.1.1 20160602]
 詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 >>> sklearn.model_selection importtrain_test_splitから
 >>> sklearnをインポートする
 >>> sklearn .__ version__
 「0.18」
 >>> quit()
 (py35)[victoria @victoria Vancouver] $ sd
 [Anaconda venvの非アクティブ化(ソースの非アクティブ化)]
 [ビクトリア@ビクトリアバンクーバー] $
 ---------------------------------------------
ホスト(非仮想)環境(PYTHON 3.5):
 ---------------------------------------------
 [victoria @victoria Vancouver] $ which python
 / usr / bin / python
 [ビクトリア@ビクトリアバンクーバー] $コンダリスト| egrep -wi'scikit | numpy | scipy '
 numpy 1.11.1
 numpy 1.10.4 py35_1
 scikit-image 0.12.3 np110py35_0
 scikit-learn 0.18
 scikit-learn 0.17.1 np110py35_0
 scipy 0.17.0 np110py35_2
 [ビクトリア@ビクトリアバンクーバー] $ピップリスト| egrep -wi'scikit | numpy | scipy '
 [ビクトリア@ビクトリアバンクーバー] $ P
 [P:python]
 Python 3.5.2(デフォルト、2016年6月28日、08:46:01)
 Linux上の[GCC6.1.1 20160602]
 詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 >>> sklearn .__ version__
 トレースバック(最後の最後の呼び出し):
 ファイル ""、1行目、
 NameError:名前 'sklearn'が定義されていません
 >>> sklearnをインポートする
 トレースバック(最後の最後の呼び出し):
 ファイル ""、1行目、
 ImportError:「sklearn」という名前のモジュールがありません
 >>>
 ----------------------------
 Python 2.7 VENV(py27 | p2):
 ----------------------------
 [ビクトリア@ビクトリアバンクーバー] $ p2
 [Anaconda Python 2.7 venv(ソースアクティベートpy27)]
 (py27)[victoria @victoria Vancouver] $コンダリスト| egrep -wi'scikit | numpy | scipy '
 numpy 1.11.1
 numpy 1.10.4 py27_1
 scikit-image 0.12.3 np110py27_0
 scikit-learn 0.17.1 np110py27_0
 scipy 0.17.1
 scipy 0.17.0 np110py27_0
 (py27)[victoria @victoria Vancouver] $ピップリスト| egrep -wi'scikit | numpy | scipy '
 numpy(1.11.1)
 scikit-image(0.12.3)
 scikit-learn(0.17.1)
 scipy(0.17.1)
 (py27)[victoria @victoria Vancouver] $ P
 [P:python]
 Python 2.7.12 | Anacondaカスタム(64ビット)| (デフォルト、2016年7月2日、17:42:40)
 [GCC 4.4.7 20120313(Red Hat 4.4.7-1)](linux2上)
 詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 Anacondaは、ContinuumAnalyticsによって提供されます。
 チェックアウトしてください:http://continuum.io/thanksおよびhttps://anaconda.org
 >>> sklearnをインポートする
 >>> sklearn .__ version__
 「0.17.1」
 >>>
 (py27)[ビクトリア@ビクトリアバンクーバー] $

ちなみに、私のPython 2.7 venvは、昨日、その(py35)venvにインストールする前は、Python 3.5venvと「類似」していたでしょう。

申し訳ありませんが、以前に問題が発生していたconda-installedscikit-learnを意味しました。 これは、問題を解決するために重ねたpipインストール済みのものです。 ここでtrain_test_splitインポートできるように見えるので、Pythonはおそらくpipから描画しています。 pipを介してインストールしたものをアンインストールした場合(つまり、ImportErrorが発生した状態に戻った場合)はどうなるか知りたいです。

@ nelson-liu:はい/おっと! その出力を投稿した直後に、私は気づきました。 上記で更新されました。 ;-)

描画していたpython3.5envには、まだscikit-learnがpipから含まれているため、水がかなり濁っています。 特にルート環境にscikit-learnをインポートすることさえできないため、マシンで何が起こっているのかよくわかりません。 py35 envのscikit-learnは、望まない場所から引き出されていると思います。 他のパッケージでこのような将来の問題を回避したい場合は、$ PATHと$ PYTHONPATHを確認しますが、とにかく「機能している」ことを確認してください。

ああ..良い点! ;-)

更新:ねえ-良いキャッチ(賢い、賢い人々; ;-) !! 今年初めにPythonIDEとしてPyCharmを使用したことが原因で、$ PYTHONPATHに問題が発生しました。 これらを解決するために、PyCharmルートディレクトリにmy_script.pthを作成しました。これには、PYTHONPATHSがリストされており、condaがインストールしたPyhtonパッケージフォルダー内の* .pthファイルへのシンボリックリンクが含まれています。 例えば

/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink to: /home/victoria/PycharmProjects/scripts/my_scripts.pth

[私は知っています:それは複雑ですが、私はそれをする必要がありました。]簡単に言えば、私は実際に私の(マルチプラットフォーム)IDE /エディターとしてGeanyを好むので、後でそれらのパスを複製/更新しました。

/home/victoria/.local/lib/python3.5/site-packages/my_scripts.pth
# symlink (now!) to: /home/victoria/GeanyProjects/Victoria/scripts/my_scripts.pth

私の(Geany)my_scripts.pth($ PYTHONPATH)ファイルが指していました

/home/victoria/.local/lib/python2.7

...これが問題だったのではないかと思います。

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