استيراد الوحدة النمطية في خطأ سبايدر
سؤال
أحاول استخدام sklearn في سبايدر.في البداية عندما حاولت استيراده كنت أتلقى خطأ في الاستيراد:لا توجد وحدة باسم sklearn
ثم قمت بالربط لتعيين PATH باستخدام مدير PYTHONPATH ثم استخدم "تحديث قائمة أسماء الوحدات" من قائمة الأدوات. ثم أعد تشغيل Spydet ولكن لم ينجح.
في النهاية قمت بنسخ مجلد sklearn إلى /Applications/Spyder.app/Contents/Resources/lib/python2.7
هذه هي الطريقة التي أجد بها مسار sklearn ونسخه في هذا المجلد:
>>> import sklearn
>>> sklearn
<module 'sklearn' from '/Library/Python/2.7/site-packages/scikit_learn-0.12_git-py2.7-macosx-10.7-intel.egg/sklearn/__init__.pyc'>
>>>
ثم أقوم بالضغط على المجلد الأصلي:
cp -r sklearn /Applications/Spyder.app/Contents/Resources/lib/python2.7
ولكن عندما أحاول استيراد sklearn إلى سبايدر مثل من sklearn import dataset
:
Traceback (most recent call last):
File "/Users/mohsenjadidi/Documents/workspace/dsv/test.py", line 10, in <module>
from sklearn import dataset
File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/sklearn/__init__.py", line 17, in <module>
from .base import clone
File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/sklearn/base.py", line 11, in <module>
from .metrics import r2_score
File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/sklearn/metrics/__init__.py", line 6, in <module>
from .metrics import confusion_matrix, roc_curve, auc, precision_score, \
File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/sklearn/metrics/metrics.py", line 17, in <module>
from ..utils import check_arrays
File "/Applications/Spyder.app/Contents/Resources/lib/python2.7/sklearn/utils/__init__.py", line 9, in <module>
from .murmurhash import murmurhash3_32
File "numpy.pxd", line 151, in init sklearn.utils.murmurhash (sklearn/utils/murmurhash.c:4773)
ValueError: numpy.dtype has the wrong size, try recompiling
أي فكرة؟ شكرا
المحلول
موج, ، يستخدم تطبيق Spyder MacOS X مترجم Python (الداخلي) الخاص به، وليس مترجم النظام.كانت هذه هي الطريقة الوحيدة التي وجدناها (المطورين) لتوفير تطبيق مستقل مع numpy وscipy وmatplotlib وIPython، دون العبث بنظام Python.
أعتقد الآن أنه لا توجد طريقة لإضافة المزيد من الحزم إلى التطبيق، ولكننا سنحاول تحسين الوضع خلال الشهرين المقبلين.
البديل الآخر (الذي تصورناه) هو للمستخدمين الذين يريدون المزيد من الحزم لتنزيل أحدث إصدار من EPD وتثبيته وتغيير مترجم Python الخاص بهم في
Tools > Preferences > Console > Advanced Settings > Python Executable
نصائح أخرى
واجهت نفس المشكلة أثناء استيراد Networkx.كان سحب وإسقاط مجلده في مجلد سبايدر كافياً بالنسبة لي.