2012-07-13 69 views
8

我试图在我的Linux Mint 12上安装scikit-learn,但失败了。我从http://pypi.python.org/pypi/scikit-learn/下载的软件包,并安装了无法导入Scikit-Learn

sudo python2.7 setup.py install 

然后我改变了目录,对家庭,开始python2.7外壳。在进口sklearn我得到:

>>> import sklearn 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:7: RuntimeWarning: 
numpy.dtype size changed, may indicate binary incompatibility 
    from ckdtree import * 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:7: RuntimeWarning: 
numpy.ndarray size changed, may indicate binary incompatibility 
    from ckdtree import * 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:7: RuntimeWarning: 
numpy.ufunc size changed, may indicate binary incompatibility 
    from ckdtree import * 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:8: RuntimeWarning: 
numpy.dtype size changed, may indicate binary incompatibility 
    from qhull import * 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:8: RuntimeWarning: 
numpy.ndarray size changed, may indicate binary incompatibility 
    from qhull import * 
/usr/lib/python2.7/dist-packages/scipy/spatial/__init__.py:8: RuntimeWarning: 
numpy.ufunc size changed, may indicate binary incompatibility 
    from qhull import * 

我认为问题是与scipy的空间。这是因为当我做

>>> from scipy import spatial 

我得到同样的错误,我得到的Scikit学习。

请帮忙。 谢谢。

编辑:新错误。

>>> import sklearn 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.12_git-py2.7-linux- 
x86_64.egg/sklearn/__init__.py", line 17, in <module> 
    from .base import clone 
    File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.12_git-py2.7-linux- 
x86_64.egg/sklearn/base.py", line 11, in <module> 
    from .metrics import r2_score 
    File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.12_git-py2.7-linux- 
x86_64.egg/sklearn/metrics/__init__.py", line 6, in <module> 
    from .metrics import confusion_matrix, roc_curve, auc, precision_score, \ 
    File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.12_git-py2.7-linux- 
x86_64.egg/sklearn/metrics/metrics.py", line 17, in <module> 
    from ..utils import check_arrays 
    File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.12_git-py2.7-linux- 
x86_64.egg/sklearn/utils/__init__.py", line 9, in <module> 
    from .murmurhash import murmurhash3_32 
    File "numpy.pxd", line 174, in init sklearn.utils.murmurhash (sklearn/utils 
/murmurhash.c:4776) 
ValueError: numpy.ndarray has the wrong size, try recompiling 

回答

8

我真的不知道,但是当这取决于numpy的包被编译针对特定版本(或一个特定的平台)根据this恰巧错误,然后该程序包安装在不同的环境。你是如何安装这两个软件包的? (numpy和scipy)

我建议卸载并重新安装SciPy,using pipfrom source

+0

谢谢mgibsonbr。我从源代码重新安装了scipy和numpy。之后'从scipy导入空间'没有给出任何错误。但是,在导入sklearn时,我得到了一个不同的错误。我正在写上面的错误。 – Rishi 2012-07-13 06:21:56

+1

我用'pip install -U scikit-learn'再次安装了scikit-learn,之后导入工作。谢谢。 :) – Rishi 2012-07-13 06:42:27

+0

@Rishi那不适合我。我仍然得到'/usr/local/lib/python2.7/dist-packages/scipy/spatial/__init__.py:91:RuntimeWarning:numpy.ufunc的大小改变,可能表明.qhull导入的二进制不兼容*' – 2014-08-25 13:31:07

1

我今天在OS X El Capitan遇到了这个问题。不幸的是,重新安装/安装不起作用,因为问题最终导致OS X原生的numpy安装优于pip安装的安装。

我能够通过遵循指导来解决这个:https://apple.stackexchange.com/a/223163

特别是,我用固定蟒蛇路径,通过OS X机库喜欢点子库的方法:

创建一个文件在/Library/Python/2.7/site-packages称为fix_mac_path.pth具有以下:

import sys; std_paths=[p for p in sys.path if p.startswith('/System/')]; sys.path=[p for p in sys.path if not p.startswith('/System/')]+std_paths