我只是想成功运行一个scikit-learn的示例源代码,但一直遇到相同的错误。代码可以在这里找到 – 代码大约有90行,所以在这里放置它并不高效。然而,每当我运行它时,我都会从导入sklearn中得到错误消息,指出:
File "plot_outlier_detection.py", line 33, in <module> from sklearn import svmFile "/Library/Python/2.7/site-packages/sklearn/__init__.py", line 57, in <module> from .base import cloneFile "/Library/Python/2.7/site-packages/sklearn/base.py", line 11, in <module> from .utils.fixes import signatureFile "/Library/Python/2.7/site-packages/sklearn/utils/__init__.py", line 10, in <module> from .murmurhash import murmurhash3_32File "numpy.pxd", line 155, in init sklearn.utils.murmurhash (sklearn/utils/murmurhash.c:5029)ValueError: numpy.dtype has the wrong size, try recompiling
主要错误是
ValueError: numpy.dtype has the wrong size, try recompiling
我已经查看了许多Stackoverflow的帖子,他们说我需要更新我的numpy、matplotlib、scipy,我已经多次这样做了(使用pip升级/卸载+安装/从源代码卸载+安装),但同样的错误仍然出现(我也重新安装了sklearn)。我想我知道为什么会这样:
当我在终端中使用python并检查numpy版本时,我得到
import numpynumpy.version.version'1.9.2'
然而,当我尝试通过pip安装或升级时 – 我得到消息
numpy in /Library/Python/2.7/site-packages/numpy-1.11.0-py2.7-macosx-10.10-intel.egg
我在这个Stackoverflow查询中读到这一点,他们说要使用easy_install,因为在Mac上python不会从正确的路径读取(我不知道,有人能确认吗?)所以我通过easy_install做了这件事,并得到这个消息
Searching for numpyBest match: numpy 1.11.0Processing numpy-1.11.0-py2.7-macosx-10.10-intel.eggnumpy 1.11.0 is already the active version in easy-install.pthInstalling f2py script to /usr/local/binUsing /Library/Python/2.7/site-packages/numpy-1.11.0-py2.7-macosx-10.10-intel.eggProcessing dependencies for numpyFinished processing dependencies for numpy
这完全相同。我真的不知道发生了什么。谁能帮帮我吗?
参考版本如下:
Python - 2.7.10Numpy - 1.9.2Matplotlib - 1.4.3Scipy - 0.13.0b1
其余版本也未更新…但它们源自numpy的版本是否是最新的。
回答:
我在Ubuntu(14.04)上安装了Anaconda(2.5.0)。使用Anaconda 2.5.0,我的版本是:
python 2.7.11
Numpy 1.10.4
Scipy 0.17.0
我从链接中下载了代码,在我的机器上运行得很完美
你可以尝试安装Anaconda,看看它是否能解决你的问题?https://www.continuum.io/downloads