Scikit-learn: setelah pembaruan: ImportError: Tidak ada modul bernama model_selection di komputer windows

Dibuat pada 13 Jan 2016  ·  17Komentar  ·  Sumber: scikit-learn/scikit-learn

setelah berhasil memperbarui dengan
conda update scikit-belajar
di komputer Windows
dari sklearn.model_selection impor GridSearchCV
atau
dari sklearn.model_selection impor train_test_split
memberi
ImportError: Tidak ada modul bernama model_selection
TAPI, scikit-learn mulai berfungsi setelah pembaruan hanya setelah
conda install -f scipy
per
http://stackoverflow.com/questions/31012216/updated-anaconda-why-arent-my-ipython-notebooks-working-anymore
omong-omong contoh ini berjalan ok
http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html#example -text-document-classification-20newsgroups-py

Komentar yang paling membantu

Modul model_selection akan tersedia hanya dari rilis berikutnya (0,18). Anda harus menggunakan modul cross_validation !

Semua 17 komentar

Modul model_selection akan tersedia hanya dari rilis berikutnya (0,18). Anda harus menggunakan modul cross_validation !

Penutupan karena ini bukan bug.

ok, tapi tolong bantu mendapatkan kode kerja untuk file exercise_02_sentiment.py
dari http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
seperti yang tertulis
Sumber tutorial ini dapat ditemukan di dalam folder scikit-learn Anda:
scikit-belajar/doc/tutorial/text_analytics/

Anda dapat mengunduh kode dari situs web stable doc atau checkout cabang 0.17.X di repo Anda.

Masalah ini ditutup pada Jan 2016, tetapi masih relevan (Okt 2016). Larutan:

 ## [2016-Okt-19] Lingkungan virtual Python 3.5
 (py35) [victoria @victoria ~]$ conda install scikit-learn
 ...
 Berikut paket BARU yang akan DIINSTAL:
 scikit-belajar: 0.18-np111py35_0
 ...
 (py35) [victoria @victoria ~]$ daftar conda | grep scikit
 scikit-belajar 0.18 np111py35_0 
 ## Python 3.5:
 >>> dari sklearn.model_selection impor train_test_split
 Traceback (panggilan terakhir terakhir):
 berkas "", baris 1, di
 ImportError: Tidak ada modul bernama 'sklearn.model_selection'
 ## kerang:
 $ conda install -f scipy
 ...
 Berikut paket BARU yang akan DIINSTAL:
 scipy: 0.18.1-np111py35_0
 ...
 ## Python: kesalahan impor yang sama!! Grrrrrr......
 ## http://scikit-learn.org/stable/install.html
 "Jika Anda sudah memiliki instalasi numpy dan scipy yang berfungsi, cara termudah untuk menginstal scikit-learn adalah menggunakan pip

 pip install -U scikit-belajar

 atau konda:

 conda install scikit-belajar"
 $ pip install -U scikit-learn
 Mengumpulkan scikit-belajar
 Mengunduh scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11.3MB)
 100% |████████████████████████████████| 11.3MB 162kB/dtk 
 Menginstal paket yang dikumpulkan: scikit-learn
 Menemukan instalasi yang ada: scikit-learn 0.17.1
 PENGHENTIAN: Menghapus instalasi proyek yang diinstal distutil (scikit-learn) telah ditinggalkan dan akan dihapus di versi mendatang. Hal ini disebabkan fakta bahwa mencopot proyek distutil hanya akan menghapus sebagian proyek.
 Menghapus instalasi scikit-learn-0.17.1:
 Berhasil mencopot pemasangan scikit-learn-0.17.1
 Berhasil menginstal scikit-learn-0.18
 ## SEKARANG dapat berhasil mengimpor:
 (py35) [victoria @victoria ~]$ P
 [P: ular piton]
 Python 3.5.2 (default, 28 Juni 2016, 08:46:01) 
 [GCC 6.1.1 20160602] di linux
 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
 >>> dari sklearn.model_selection impor train_test_split
 >>> 
 >>> [Ctrl-D / keluar]
 (py35) [victoria @victoria ~]$ ## :-D

 QED

hmm, sepertinya saya tidak punya masalah dengan Anda @victoriastuart . Apakah Anda yakin bahwa Anda mengaktifkan lingkungan / memiliki python di lingkungan tempat Anda conda install scikit-learn ?

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: terima kasih atas saran Anda ... Ya: Saya bekerja di lingkungan virtual Python 3.5 saya sepanjang waktu (terminal; Python). Bekerja sekarang, sesuai jawaban saya. :-)

@victoriastuart Cukup yakin ini terjadi pada Anda (lihat kotak merah besar):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platforms

Jangan mencoba memutakhirkan paket dengan conda yang Anda instal dengan pip. itu tidak akan bekerja. Ini adalah bug setuptools.

@amueller - Begini masalahnya: Saya menggunakan venv yang diinstal CONDA: pada awalnya saya cukup yakin sklearn tidak ada (saya belum pernah menggunakannya sebelumnya di venv ini, jadi sebelumnya tidak akan diinstal , misalnya melalui pip; terlepas dari itu, saya selalu lebih suka conda daripada pip -- pertama, di venv saya -- menggunakan pip sebagai pilihan terakhir):

 (py35) [victoria @victoria ~]$ conda install scikit-learn
 Mengambil metadata paket .......
 Memecahkan spesifikasi paket: ..........
 Paket paket untuk instalasi di lingkungan /home/victoria/anaconda3/envs/py35:
 Paket-paket berikut akan diunduh:
 paket | membangun
 ----------------------------|------------------
 numpy-1.11.2 | py35_0 6.1 MB
 scipy-0.18.1 | np111py35_0 30.4 MB
 scikit-belajar-0.18 | np111py35_0 10.8 MB
 theano-0.8.2 | py35_0 3,7 MB
 -------------------------------------------------- ----------
 Jumlah: 51,0 MB
 Berikut paket BARU yang akan DIINSTAL:
 scikit-belajar: 0.18-np111py35_0 
 Paket berikut akan DIPERBARUI:
 atropi: 1.1.2-np110py35_0 --> 1.2.1-np111py35_0 
 kemacetan: 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 
 Lanjutkan ([y]/n)? 
 [... gunting ...]

Catatan, di atas:

Paket BARU berikut akan DIINSTAL: scikit-learn: 0.18-np111py35_0

Jadi, singkatnya: sesuai prosedur standar dan sklearn-recommended (http://scikit-learn.org/stable/install.html), saya menginstal sklearn -- ternyata menginstal OK (tanpa peringatan), lalu coba gunakan: gagal untuk mengimpor dengan pesan kesalahan esoterik >> pencarian Google >> halaman ini. Saya menghargai semua hal kecil tentang ini atau itu (sklearn viz-a-viz NumPy atau SciPy, ...), tetapi poin utamanya adalah bahwa sebagai pengguna, saya perlu bekerja untuk menyelesaikan masalah ini, yang tampaknya (di atas utas) telah berlangsung untuk beberapa pengguna.

masalahnya sebenarnya adalah kode referensi jawaban stackoverflow yang belum dipublikasikan ke conda/pip (kami baru melakukannya 2 minggu yang lalu, jadi tentu saja kode tersebut tidak berfungsi pada versi yang diinstal conda/pip sampai saat itu). Masalah Anda tampaknya agak tidak terkait, tetapi saya senang Anda berhasil menyelesaikannya.

@nelson-liu: lol terima kasih -- dan semua orang yang terlibat dalam proyek/pengembangan ini. Saya tahu ini sangat rumit, dan komplikasi seperti yang dilaporkan di sini adalah fakta kehidupan yang tak terhindarkan. Bagaimanapun instalasi sklearn saya tampaknya berfungsi sekarang, seperti yang dirangkum di atas. [Saya akan mulai menggunakannya dalam beberapa jam.] Semoga diskusi di atas dapat menginformasikan/membantu orang lain. Sekali lagi, banyak penghargaan! :-)

@victoriastuart saya menganggap Anda tidak memiliki lingkungan conda lagi/tidak dapat mereproduksinya lagi, tetapi saya ingin tahu apa:

>>> import sklearn
>>> sklearn.__version__

akan menghasilkan (saya berharap itu tidak seperti yang kita pikirkan, yaitu bukan 0,18).
Saya menduga ini masalah dengan $PYTHONPATH dan mungkin menggambar scikit-learn dari beberapa lokasi lain; memperbaiki kesalahan seperti itu mudah-mudahan akan menghindari kesalahan seperti itu dengan paket lain.

@nelson-liu : tentu, tidak masalah! ;-)

 ----------------------------
 PYTHON 3.5 VENV (py35 | p3):
 ----------------------------
 [victoria @victoria Vancouver]$ p3
 [Anaconda Python 3.5 venv (sumber aktifkan py35)]
 (py35) [victoria @victoria Vancouver]$ python yang mana
 /home/victoria/anaconda3/envs/py35/bin/python
 (py35) [victoria @victoria Vancouver]$ daftar conda | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.2 py35_0
 scikit-belajar 0.18 np111py35_0
 scipy 0.18.1 np111py35_0
 (py35) [victoria @victoria Vancouver]$ daftar pip | egrep -wi 'scikit|numpy|scipy'
 numpy (1.11.1)
 scikit-gambar (0.12.3)
 scikit-belajar (0,18)
 sip (0.17.0)
 (py35) [victoria @victoria Vancouver]$ P
 [P: ular piton]
 Python 3.5.2 (default, 28 Juni 2016, 08:46:01)
 [GCC 6.1.1 20160602] di linux
 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
 >>> dari sklearn.model_selection impor train_test_split
 >>> impor sklearn
 >>> sklearn.__version__
 '0.18'
 >>> keluar()
 (py35) [victoria @victoria Vancouver]$ sd
 [Anaconda venv nonaktifkan (sumber nonaktifkan)]
 [victoria @victoria Vancouver]$
 ---------------------------------------------
 LINGKUNGAN HOST (NON-VIRTUAL) (PYTHON 3.5):
 ---------------------------------------------
 [victoria @victoria Vancouver]$ python yang mana
 /usr/bin/python
 [victoria @victoria Vancouver]$ daftar conda | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.1
 numpy 1.10.4 py35_1
 scikit-image 0.12.3 np110py35_0
 scikit-belajar 0.18
 scikit-belajar 0.17.1 np110py35_0
 scipy 0.17.0 np110py35_2
 [victoria @victoria Vancouver]$ daftar pip | egrep -wi 'scikit|numpy|scipy'
 [victoria @victoria Vancouver]$ P
 [P: ular piton]
 Python 3.5.2 (default, 28 Juni 2016, 08:46:01)
 [GCC 6.1.1 20160602] di linux
 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
 >>> sklearn.__version__
 Traceback (panggilan terakhir terakhir):
 berkas "", baris 1, di
 NameError: nama 'sklearn' tidak ditentukan
 >>> impor sklearn
 Traceback (panggilan terakhir terakhir):
 berkas "", baris 1, di
 ImportError: Tidak ada modul bernama 'sklearn'
 >>>
 ----------------------------
 Python 2.7 VENV (py27 | p2):
 ----------------------------
 [victoria @victoria Vancouver]$ p2
 [Anaconda Python 2.7 venv (sumber aktifkan py27)]
 (py27) [victoria @victoria Vancouver]$ daftar conda | egrep -wi 'scikit|numpy|scipy'
 numpy 1.11.1
 numpy 1.10.4 py27_1
 scikit-image 0.12.3 np110py27_0
 scikit-belajar 0.17.1 np110py27_0
 sip 0.17.1
 scipy 0.17.0 np110py27_0
 (py27) [victoria @victoria Vancouver]$ daftar pip | egrep -wi 'scikit|numpy|scipy'
 numpy (1.11.1)
 scikit-gambar (0.12.3)
 scikit-belajar (0.17.1)
 sip (0.17.1)
 (py27) [victoria @victoria Vancouver]$ P
 [P: ular piton]
 Python 2.7.12 | Kustom Anaconda (64-bit)| (default, 2 Juli 2016, 17:42:40)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] di linux2
 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
 Anaconda dipersembahkan oleh Continuum Analytics.
 Silakan periksa: http://continuum.io/thanks dan https://anaconda.org
 >>> impor sklearn
 >>> sklearn.__version__
 '0.17.1'
 >>>
 (py27) [victoria @victoria Vancouver]$

AFAIK, Python 2.7 venv saya akan "mirip" dengan Python 3.5 venv saya, kemarin, sebelum saya menginstal di venv (py35) itu.

maaf, maksud saya scikit-learn yang diinstal conda yang sebelumnya bermasalah. Yang ini adalah pip yang diinstal yang Anda letakkan di atasnya untuk menyelesaikan masalah Anda. Karena sepertinya Anda dapat mengimpor train_test_split sini, python mungkin menggambar dari pip. Saya ingin tahu bagaimana jadinya jika Anda mencopot pemasangan hal-hal yang Anda instal melalui pip (sehingga kembali ke keadaan di mana Anda memiliki ImportError).

@nelson-liu : ya / oops! Saya menyadari itu, segera setelah saya memposting output itu. Diperbarui, sekarang, di atas. ;-)

Env python3.5 yang Anda gambar masih memiliki scikit-belajar dari pip di atasnya, yang sangat memperkeruh air. Tidak terlalu yakin apa yang terjadi pada mesin Anda, terutama karena Anda bahkan tidak dapat mengimpor scikit-learn di root env Anda; Saya pikir scikit-learn di py35 env sedang diambil dari tempat lain yang tidak Anda inginkan. Saya akan memeriksa $PATH dan $PYTHONPATH Anda jika Anda ingin menghindari masalah di masa depan seperti ini dengan paket lain, tetapi senang melihat bahwa itu "berfungsi".

Ahhh.. poin bagus! ;-)

Pembaruan: Hei - tangkapan yang bagus (pintar, pandai orang di luar sana; ;-) !! Saya memiliki masalah dengan $PYTHONPATH saya, yang timbul dari penggunaan PyCharm awal tahun ini sebagai IDE Python saya. Untuk mengatasinya, saya membuat my_script.pth di direktori root PyCharm saya, yang mencantumkan PYTHONPATHS saya, dengan symlink ke file *.pth itu di folder paket Pyhton yang diinstal conda saya; misalnya

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

[Saya tahu: ini rumit, tetapi saya harus melakukannya.] Singkat cerita, saya sebenarnya lebih suka Geany sebagai IDE/editor (multi-platform) saya, jadi saya kemudian mereplikasi/memperbarui jalur tersebut, mis.

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

File saya (Geany) my_scripts.pth ($PYTHONPATH) mengarah ke

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

... yang, saya yakin, mungkin menjadi masalah?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat