Scikit - 学习只在python 2中工作,而不是python 3

时间:2015-03-06 00:50:12

标签: python pip scikit-learn

我使用pip安装了scikit-learn:

sudo pip install -U numpy scipy scikit-learn

当我在python(2)中运行它时,它工作正常:

adamg:~ adamg$ python
Python 2.7.9 (default, Feb 10 2015, 03:28:08) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn import datasets
>>> 

但是,我在python 3中遇到以下错误:

adamg:~ adamg$ python3
Python 3.4.2 (default, Feb 10 2015, 03:38:22) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sklearn import datasets
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/site-packages/sklearn/datasets/__init__.py", line 7, in <module>
    from .base import load_diabetes
  File "/usr/local/lib/python3.4/site-packages/sklearn/datasets/base.py", line 24, in <module>
    from ..utils import check_random_state
  File "/usr/local/lib/python3.4/site-packages/sklearn/utils/__init__.py", line 16, in <module>
    from .class_weight import compute_class_weight, compute_sample_weight
  File "/usr/local/lib/python3.4/site-packages/sklearn/utils/class_weight.py", line 7, in <module>
    from ..utils.fixes import in1d
  File "/usr/local/lib/python3.4/site-packages/sklearn/utils/fixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "/usr/local/lib/python3.4/site-packages/scipy/sparse/linalg/__init__.py", line 109, in <module>
    from .isolve import *
  File "/usr/local/lib/python3.4/site-packages/scipy/sparse/linalg/isolve/__init__.py", line 6, in <module>
    from .iterative import *
  File "/usr/local/lib/python3.4/site-packages/scipy/sparse/linalg/isolve/iterative.py", line 7, in <module>
    from . import _iterative
ImportError: dlopen(/usr/local/lib/python3.4/site-packages/scipy/sparse/linalg/isolve/_iterative.so, 2): Library not loaded: /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib
  Referenced from: /usr/local/lib/python3.4/site-packages/scipy/sparse/linalg/isolve/_iterative.so
  Reason: image not found

我知道主网站说scikit-learn只支持python 3.3。但是,github网站表示它适用于3.4

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

看起来这是与OSX Yosemite上的gfortran相关的问题。我通过在此网站上下载并安装最新的gcc二进制文件解决了该问题:http://hpc.sourceforge.net/

注意,双击tar.gz文件不会执行gunzip。我不得不在命令行上使用gunzip命令。

答案 1 :(得分:0)

这是您的安装问题,您需要在python 3上安装,因此请尝试:

pip3 install -U numpy scipy scikit-learn