【问题标题】:Scikit-learn fails to import only in Jupyter notebookScikit-learn 无法仅在 Jupyter 笔记本中导入
【发布时间】:2017-02-15 15:10:27
【问题描述】:

我在 OS X 上安装了 Anaconda。我可以从 python 终端和 IPython 终端导入 sklearn。但是当我尝试从 Jupyter 笔记本导入 sklearn 时,出现以下错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-8fd979e02004> in <module>()
----> 1 import sklearn

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/sklearn/__init__.py in <module>()
     55 else:
     56     from . import __check_build
---> 57     from .base import clone
     58     __check_build  # avoid flakes unused variable error
     59 

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/sklearn/base.py in <module>()
     10 from scipy import sparse
     11 from .externals import six
---> 12 from .utils.fixes import signature
     13 from .utils.deprecation import deprecated
     14 from .exceptions import ChangedBehaviorWarning as _ChangedBehaviorWarning

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/sklearn/utils/__init__.py in <module>()
      9 
     10 from .murmurhash import murmurhash3_32
---> 11 from .validation import (as_float_array,
     12                          assert_all_finite,
     13                          check_random_state, column_or_1d, check_array,

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/sklearn/utils/validation.py in <module>()
     16 
     17 from ..externals import six
---> 18 from ..utils.fixes import signature
     19 from .deprecation import deprecated
     20 from ..exceptions import DataConversionWarning as _DataConversionWarning

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/sklearn/utils/fixes.py in <module>()
    288     from ._scipy_sparse_lsqr_backport import lsqr as sparse_lsqr
    289 else:
--> 290     from scipy.sparse.linalg import lsqr as sparse_lsqr
    291 
    292 

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/scipy/sparse/linalg/__init__.py in <module>()
    110 from __future__ import division, print_function, absolute_import
    111 
--> 112 from .isolve import *
    113 from .dsolve import *
    114 from .interface import *

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/scipy/sparse/linalg/isolve/__init__.py in <module>()
      4 
      5 #from info import __doc__
----> 6 from .iterative import *
      7 from .minres import minres
      8 from .lgmres import lgmres

/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/scipy/sparse/linalg/isolve/iterative.py in <module>()
      5 __all__ = ['bicg','bicgstab','cg','cgs','gmres','qmr']
      6 
----> 7 from . import _iterative
      8 
      9 from scipy.sparse.linalg.interface import LinearOperator

ImportError: dlopen(/Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/scipy/sparse/linalg/isolve/_iterative.so, 2): Library not loaded: /usr/local/lib/libgcc_s.1.dylib
  Referenced from: /Users/joe/anaconda/envs/data_env/lib/python3.5/site-packages/scipy/sparse/linalg/isolve/_iterative.so
  Reason: image not found

我可以从 Jupyter notebook 导入 numpy、scipy 和 pandas。只是 sklearn 失败了。

我也尝试过创建一个新的 conda 环境 (conda create -n test_env jupyter notebook matplotlib scipy numpy pandas scikit-learn),但错误在新环境中仍然存在。

【问题讨论】:

  • 尝试打印我们使用哪个python解释器安装jupyter
  • 好像是一样的。 which python 产生 /Users/joe/anaconda/bin/pythonsys.executable 在 Jupyter notebook 或标准 Python 或 IPython 终端中产生相同的结果。

标签: python scikit-learn importerror jupyter-notebook


【解决方案1】:

我设法弄清楚发生了什么,所以我会在这里发布我的解决方案,以防其他人遇到同样的问题。事实证明,当我安装另一个软件时,我修改了我的.bashrc 文件中的DYLD_FALLBACK_LIBRARY_PATH 环境变量。将此环境变量恢复为其默认值解决了我的问题。

(顺便说一句,scikit-learn 也无法在标准 Python 终端中导入。我最初并没有意识到这一点,因为我正在一个环境中测试 Python 终端,在该环境中我不小心将环境变量恢复为默认值,覆盖我在.bashrc 文件中所做的更改。)

【讨论】:

    猜你喜欢
    • 2020-01-17
    • 2018-07-30
    • 1970-01-01
    • 2020-01-04
    • 2018-11-08
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多