Scikit-learn: بعد التحديث: ImportError: لا توجد وحدة باسم model_selection على كمبيوتر windows

تم إنشاؤها على ١٣ يناير ٢٠١٦  ·  17تعليقات  ·  مصدر: scikit-learn/scikit-learn

بعد التحديث الناجح مع
تحديث conda scikit-learn
على جهاز كمبيوتر يعمل بنظام Windows
من sklearn.model_selection استيراد GridSearchCV
أو
من sklearn.model_selection استيراد train_test_split
يعطي
ImportError: لا توجد وحدة باسم model_selection
ولكن ، بدأ scikit-Learn العمل بعد التحديث فقط بعد ذلك
تثبيت conda -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-rating-20newsgroups-py

التعليق الأكثر فائدة

ستتوفر الوحدة النمطية model_selection من الإصدار التالي (0.18) فقط. سيتعين عليك استخدام الوحدة النمطية cross_validation القديمة!

ال 17 كومينتر

ستتوفر الوحدة النمطية model_selection من الإصدار التالي (0.18) فقط. سيتعين عليك استخدام الوحدة النمطية cross_validation القديمة!

الإغلاق لأن هذا ليس خطأ.

حسنًا ، ولكن هل يمكنك المساعدة في الحصول على رمز عمل لملف work_02_sentiment.py
من http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html
كما هو مكتوب
يمكن العثور على مصدر هذا البرنامج التعليمي داخل مجلد scikit-Learn الخاص بك:
scikit-learn / doc / tutorial / text_analytics /

يمكنك تنزيل الكود من موقع الويب الثابت doc أو التحقق من فرع 0.17.X في الريبو الخاص بك.

تم إغلاق هذه المشكلة في كانون الثاني (يناير) 2016 ، لكنها لا تزال ذات صلة (تشرين الأول (أكتوبر) 2016). حل:

 ## [2016-أكتوبر -19] بيئة Python 3.5 الافتراضية
 (py35) [victoria @ victoria ~] $ conda تثبيت scikit-learn
 ...
 سيتم تثبيت الحزم الجديدة التالية:
 scikit-Learn: 0.18-np111py35_0
 ...
 (py35) [victoria @ victoria ~] $ conda list | grep scikit
 scikit-learn 0.18 np111py35_0 
 ## بايثون 3.5:
 >>> من sklearn.model_selection استيراد train_test_split
 Traceback (آخر مكالمة أخيرة):
 ملف ""، السطر 1 ، في
 ImportError: لا توجد وحدة باسم "sklearn.model_selection"
 ## صدفة:
 تثبيت $ conda -f scipy
 ...
 سيتم تثبيت الحزم الجديدة التالية:
 scipy: 0.18.1-np111py35_0
 ...
 ## بايثون: نفس خطأ الاستيراد !! Grrrrrrr .......
 ## http://scikit-learn.org/stable/install.html
 "إذا كان لديك بالفعل تثبيت عملي لـ numpy و scipy ، فإن أسهل طريقة لتثبيت scikit-Learn هي استخدام Pip

 تثبيت Pip -U scikit-Learn

 أو كوندا:

 conda install scikit-learn "
 تثبيت $ pip -U scikit-learn
 جمع scikit-Learn
 تحميل scikit_learn-0.18-cp35-cp35m-manylinux1_x86_64.whl (11.3MB)
 100٪ | ████████████████████████████████ | 11.3 ميجا بايت 162 كيلو بايت / ثانية 
 تثبيت الحزم المجمعة: 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) [فيكتوريا @ فيكتوريا ~] $ P.
 [P: بيثون]
 Python 3.5.2 (افتراضي ، 28 حزيران (يونيو) 2016 ، 08:46:01) 
 [GCC 6.1.1 20160602] على لينكس
 اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.
 >>> من sklearn.model_selection استيراد train_test_split
 >>> 
 >>> [Ctrl-D / خروج]
 (py35) [فيكتوريا @ فيكتوريا ~] $ ## :- 

حسنًا ، لا يبدو أن لدي مشكلة لديك @ victoriastuart . هل أنت متأكد من أنك تقوم بتنشيط البيئة / لديك Python في البيئة التي لديك 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: شكرًا لك على اقتراحك ... نعم: كنت أعمل في بيئة Python 3.5 الافتراضية طوال الوقت (Terminal ؛ Python). العمل الآن ، في إجابتي. :-)

@ victoriastuart متأكد من أن هذا حدث لك (انظر المربع الأحمر الكبير):
http://scikit-learn.org/dev/install.html#canopy -and-anaconda-for-all-supported-platform

لا تحاول ترقية حزمة باستخدام conda التي قمت بتثبيتها باستخدام النقطة. لن يعمل. إنه خطأ في setuptools.

amueller - هذا هو الشيء: أنا في CONDA مثبتة: في البداية أنا متأكد من أن sklearn لم يكن موجودًا (لم أستخدمه سابقًا في هذا venv ، لذلك لم يكن مثبتًا من قبل ، على سبيل المثال عن طريق النقطة ؛ بغض النظر ، أنا دائمًا أفضل كوندا على النقطة - أولاً ، في venv - استخدام النقطة كملاذ أخير):

 (py35) [victoria @ victoria ~] $ conda تثبيت scikit-learn
 إحضار البيانات الوصفية للحزمة .......
 حل مواصفات الحزمة: ..........
 خطة الحزمة للتثبيت في البيئة / المنزل / Victoria / Anaconda3 / ENVS / PY35:
 سيتم تنزيل الحزم التالية:
 الحزمة | يبني
 --------------------------- | -----------------
 numpy-1.11.2 | py35_0 6.1 ميجا بايت
 scipy-0.18.1 | np111py35_0 30.4 ميجا بايت
 scikit-learn-0.18 | np111py35_0 10.8 ميجا بايت
 ثيانو 0.8.2 | py35_0 3.7 ميجا بايت
 -------------------------------------------------- ----------
 الإجمالي: 51.0 ميجا بايت
 سيتم تثبيت الحزم الجديدة التالية:
 scikit-Learn: 0.18-np111py35_0 
 سيتم تحديث الحزم التالية:
 نجمي: 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
 ثيانو: 0.7.0-np110py35_0 -> 0.8.2-py35_0 
 المضي قدما ([y] / n)؟ 
 [... قص ...]

ملاحظة أعلاه:

سيتم تثبيت الحزم الجديدة التالية: scikit-Learn: 0.18-np111py35_0

لذلك ، باختصار: وفقًا للإجراءات المعيارية والموصى بها من قبل sklearn (http://scikit-learn.org/stable/install.html) ، أقوم بتثبيت sklearn - يبدو أنه يثبت جيدًا (لا توجد تحذيرات) ، ثم حاول استخدامه: فشل للاستيراد برسالة خطأ مقصورة على فئة معينة >> بحث Google >> هذه الصفحة. أقدر كل التفاصيل حول هذا أو ذاك (sklearn viz-a-viz NumPy أو SciPy ، ...) ، لكن النقطة الأساسية هي أنني كمستخدم ، كنت بحاجة إلى العمل لحل هذه المشكلة ، والتي يبدو أنها (أعلى موضوع) مستمر لبعض المستخدمين.

كانت المشكلة في الواقع أن إجابة stackoverflow تشير إلى رمز لم يتم نشره إلى conda / pip حتى الآن (لقد فعلنا ذلك منذ أسبوعين ، لذلك بطبيعة الحال لم يعمل الرمز على الإصدارات المثبتة على conda / pip حتى ذلك الحين). يبدو أن مشكلتك ليست ذات صلة إلى حد ما ، لكنني سعيد لأنك نجحت في العمل بغض النظر.

@ nelson-liu: شكرا لول - وجميع الأشخاص المشاركين في هذا المشروع / التنمية. أعلم أن الأمر معقد للغاية ، وأن المضاعفات مثل تلك التي تم الإبلاغ عنها هنا هي حقيقة لا مفر منها في الحياة. على أي حال ، يبدو أن تثبيت sklearn الخاص بي يعمل الآن ، كما تم تلخيصه أعلاه. [سأبدأ في استخدامه في غضون ساعات قليلة.] نأمل أن تُعلم المناقشة أعلاه / تساعد الآخرين. مرة أخرى ، الكثير من التقدير! :-)

victoriastuart أنا

>>> import sklearn
>>> sklearn.__version__

سوف ينتج (أتوقع أنه ليس ما نعتقد أنه هو ، أي ليس 0.18).
أظن أنها مشكلة في PYTHONPATH $ وربما رسم scikit-learn من مكان آخر ؛ من المأمول أن يؤدي إصلاح مثل هذا الخطأ إلى تجنب مثل هذه الأخطاء مع الحزم الأخرى.

@ نيلسون ليو: بالتأكيد ، لا مشكلة! ؛-)

 ----------------------------
 PYTHON 3.5 VENV (py35 | p3):
 ----------------------------
 [فيكتوريا @ فيكتوريا فانكوفر] $ p3
 [Anaconda Python 3.5 venv (تنشيط المصدر py35)]
 (py35) [فيكتوريا @ فيكتوريا فانكوفر] $ الذي بيثون
 / home / victoria / anaconda3 / envs / py35 / bin / python
 (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) [فيكتوريا @ فيكتوريا فانكوفر] $ P.
 [P: بيثون]
 Python 3.5.2 (افتراضي ، 28 حزيران (يونيو) 2016 ، 08:46:01)
 [GCC 6.1.1 20160602] على لينكس
 اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.
 >>> من sklearn.model_selection استيراد train_test_split
 >>> استيراد sklearn
 >>> تعلم_النسخة__
 "0.18"
 >>> إنهاء ()
 (py35) [فيكتوريا @ فيكتوريا فانكوفر] $ sd
 [إلغاء تنشيط Anaconda venv (تعطيل المصدر)]
 [فيكتوريا @ فيكتوريا فانكوفر] $
 ---------------------------------------------
 بيئة المضيف (غير الافتراضية) (PYTHON 3.5):
 ---------------------------------------------
 [فيكتوريا @ فيكتوريا فانكوفر] $ أي بيثون
 / usr / bin / python
 [فيكتوريا @ فيكتوريا فانكوفر] قائمة 
 numpy 1.10.4 py35_1
 scikit-image 0.12.3 np110py35_0
 scikit-learn 0.18.0 تحديث
 برنامج scikit-learn 0.17.1 np110py35_0
 scipy 0.17.0 np110py35_2
 [فيكتوريا @ فيكتوريا فانكوفر] قائمة النقاط $ | egrep -wi 'scikit | numpy | scipy'
 [فيكتوريا @ فيكتوريا فانكوفر] $ P.
 [P: بيثون]
 Python 3.5.2 (افتراضي ، 28 حزيران (يونيو) 2016 ، 08:46:01)
 [GCC 6.1.1 20160602] على لينكس
 اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.
 >>> تعلم_النسخة__
 Traceback (آخر مكالمة أخيرة):
 ملف ""، السطر 1 ، في
 NameError: الاسم "sklearn" غير محدد
 >>> استيراد sklearn
 Traceback (آخر مكالمة أخيرة):
 ملف ""، السطر 1 ، في
 ImportError: لا توجد وحدة باسم "sklearn"
 >>>
 ----------------------------
 Python 2.7 VENV (py27 | p2):
 ----------------------------
 [فيكتوريا @ فيكتوريا فانكوفر] $ p2
 [Anaconda Python 2.7 venv (تنشيط المصدر py27)]
 (py27) [فيكتورياvictoria فانكوفر] $ قائمة كوندا | 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.0 تحديث
 سكيبي 0.17.0 np110py27_0
 (py27) [فيكتوريا @ فيكتوريا فانكوفر] قائمة النقاط $ | egrep -wi 'scikit | numpy | scipy'
 numpy (1.11.1)
 scikit-image (0.12.3)
 scikit-Learn (0.17.1)
 scipy (0.17.1)
 (py27) [فيكتوريا @ فيكتوريا فانكوفر] $ P.
 [P: بيثون]
 Python 2.7.12 | Anaconda Custom (64 بت) | (افتراضي ، 2 تموز (يوليو) 2016 ، 17:42:40)
 [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] على linux2
 اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.
 أناكوندا تقدم لك من خلال Continuum Analytics.
 يرجى مراجعة: http://continuum.io/thanks و https://anaconda.org
 >>> استيراد sklearn
 >>> تعلم_النسخة__
 "0.17.1"
 >>>
 (py27) [فيكتوريا @ فيكتوريا فانكوفر] $

AFAIK ، كان من الممكن أن يكون Python 2.7 venv الخاص بي "مشابهًا" لـ Python 3.5 venv الخاص بي ، أمس ، قبل التثبيت في (py35) venv.

آسف ، لقد قصدت برنامج scikit-learn المثبت من conda والذي كنت تواجه مشكلات به سابقًا. هذا هو النقطة المثبتة التي وضعتها لحل مشاكلك. نظرًا لأنه يبدو أنه يمكنك استيراد train_test_split هنا ، فمن المحتمل أن Python يسحب من النقطة. أشعر بالفضول لمعرفة كيف سيكون الأمر إذا قمت بإلغاء تثبيت الأشياء التي قمت بتثبيتها عبر النقطة (وبالتالي العودة إلى الحالة التي حدث بها خطأ الاستيراد).

@ نيلسون ليو: نعم / عفوا! أدركت ذلك فور نشر هذا الناتج. محدث الآن أعلاه. ؛-)

الثعبان 3.5 الذي كنت ترسم عليه لا يزال لديه scikit-learn من pip عليه ، مما يؤدي إلى تعكير المياه إلى حد كبير. لست متأكدًا مما يحدث على جهازك ، خاصةً لأنه لا يمكنك حتى استيراد scikit-learn في بيئة الجذر الخاصة بك ؛ أعتقد أن scikit-Learn in the py35 env يتم استخلاصه من مكان آخر لا تريده أن يكون. كنت سأفحص $ PATH و $ PYTHONPATH إذا كنت تريد تجنب مشاكل مستقبلية مثل هذه مع الحزم الأخرى ، لكن من الجيد أن ترى أنها "تعمل" على أي حال.

آه .. نقاط جيدة! ؛-)

تحديث: مرحبًا - التقاط جيد (ذكي ، ذكاء الناس هناك ؛ ؛-) !! لقد واجهت مشاكل مع $ PYTHONPATH ، بسبب استخدامي لـ PyCharm في وقت سابق من هذا العام بصفتي Python IDE. لحل هذه المشكلات ، قمت بإنشاء my_script.pth في دليل جذر PyCharm الخاص بي ، والذي أدرج PYTHONPATHS الخاص بي ، مع روابط رمزية لملف * .pth في مجلدات حزمة Pyhton المثبتة على conda ؛ على سبيل المثال

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

[أعلم: الأمر معقد ، لكنني كنت بحاجة إلى القيام بذلك.] قصة قصيرة طويلة ، أنا في الواقع أفضل Geany كمحرر IDE / (متعدد المنصات) ، لذلك قمت لاحقًا بتكرار / تحديث هذه المسارات ، على سبيل المثال

/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 التقييمات