python - 使用 anaconda python 3.52 导入 sklearn 错误

标签 python macos gcc scikit-learn

将 anaconda python3 全新安装到运行 Mavericks 的 Mac 的辅助硬盘上。

import sklearn

给出

Library not loaded: /usr/local/lib/libgcc_s.1.dylib
  Referenced from: /Volumes/SecondHD/anaconda/lib/python3.5/site-packages/scipy/sparse/linalg/isolve/_iterative.so
  Reason: image not found

gcc 与 home-brew 一起安装并存在。

which gcc

给出

/usr/bin/gcc

在/usr/local/Cellar/gcc/6.1.0/lib/gcc/6 中,我可以找到 libgcc_s.1.dylib,所以我知道它在那里,即使它在/usr/local/lib 中没有符号链接(symbolic link)。

我没有将 Cellar 中所有库的更多符号链接(symbolic link)添加到/usr/local/lib ,而是将库的位置添加到搜索路径中。

在我的 ~.profile 中我有

export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/Cellar/gcc/6.1.0/lib/gcc/6"

但这不起作用。但是,如果我将此行添加到我的 .profile 中,错误就会消失

export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/Cellar/gcc/6.1.0/lib/gcc/6

我的理解来自this帖子是 LIBRARY_PATH 是编译器(如 gcc)在链接代码时查找库的位置列表。但在 Mac OSX 中,DYLD_LIBRARY_PATH 和 DYLD_FALLBACK_LIBRARY_PATH 包含任何程序在运行时将搜索共享库的位置列表。

因此,如果 sklearn 想要一个 gcc 库,这意味着将会发生一些编译(和链接)。为什么这一行还不够

export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/Cellar/gcc/6.1.0/lib/gcc/6"

为什么需要 DYLD_FALLBACK_LIBRARY_PATH 或 DYLD_LIBRARY_PATH?

最佳答案

我也遇到了同样的问题。我所做的是创建从 gcc 的地窖文件夹到/usr/local/lib 的符号链接(symbolic link)。

  1. 寻找你的gcc的正确路径

  2. ln -s/usr/local/Cellar/gcc/X.X.X/lib/gcc/6/*/usr/local/lib

关于python - 使用 anaconda python 3.52 导入 sklearn 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38472244/

相关文章:

Python-如何设置表格中汉字的字体(ax,df)

swift - 用户在 macOS 照片中开始项目扩展时加载的 View

c - 返回包含数组的结构

python - 导入错误 : No module named six [Windows]

Python/wxPython : Doing work continuously in the background

regex - sed 命令行 将 "aas=aas"更改为 "aas = aas"

ios - iOS 和 macOS 上的通用应用内购买

linux - 如何静态链接使用./configure 的Linux 软件?

c++ - 使用 Code::Blocks 运行具有多个进程的 MPI 程序

python - 将换行符添加到 Python 编写的 json