无法导入 Scikit-Learn
Posted
技术标签:
【中文标题】无法导入 Scikit-Learn【英文标题】:Cannot import Scikit-Learn 【发布时间】:2012-07-12 22:44:37 【问题描述】:我尝试在我的 Linux Mint 12 上安装 scikit-learn 但失败了。我从http://pypi.python.org/pypi/scikit-learn/ 下载了包并安装了
sudo python2.7 setup.py install
然后我将目录更改为 home 并启动 python2.7 shell。在导入 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-learn 相同的错误。
请帮忙。 谢谢。
编辑:新错误。
>>> 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
【问题讨论】:
【参考方案1】:我今天在 OS X El Capitan 上遇到了这个问题。不幸的是,重新安装/安装不起作用,因为问题最终是 OS X 原生的 numpy 安装优于 pip 安装的安装。
我能够按照以下指南解决此问题:https://apple.stackexchange.com/a/223163
特别是,我使用修复 python 路径的方法来更喜欢 pip 库而不是 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
【讨论】:
【参考方案2】:我遇到了完全相同的问题。我设法通过从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn 安装 64 位 Windows 的 Windows 二进制文件来使其工作。希望这对你有用
【讨论】:
【参考方案3】:我不太确定,但是根据this 的说法,当一个依赖于 numpy 的包被编译为针对特定版本(或特定平台),然后该包被安装在不同的环境中时,就会发生错误。你是如何安装这两个包的? (numpy 和 scipy)
我建议卸载两者,然后重新安装 SciPy,using pip 或 from source。
【讨论】:
谢谢你 mgibsonbr。我从源代码重新安装了 scipy 和 numpy。之后from scipy import spatial
没有出错。但是,在导入 sklearn 时,我得到了一个不同的错误。我正在写上面的错误。
我再次使用pip install -U scikit-learn
安装了 scikit-learn,之后导入工作。谢谢你。 :)
@Rishi 这对我不起作用。我仍然收到/usr/local/lib/python2.7/dist-packages/scipy/spatial/__init__.py:91: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility from .qhull import *
当我使用 pip
而不是 conda
时,此修复对我有效。以上是关于无法导入 Scikit-Learn的主要内容,如果未能解决你的问题,请参考以下文章
无法从'@angular/forms'导入“导入FormGroup,FormControl [重复]