Scikit-learn 仅适用于 python 2,不适用于 python 3

Scikit-learn only working in python 2, not python 3

我使用 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

我该如何解决这个问题?

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

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

这是你的安装问题,你需要在 python 3 上安装所以尝试:

pip3 install -U numpy scipy scikit-learn