【问题标题】:import sklearn error with anaconda python 3.52使用anaconda python 3.52导入sklearn错误
【发布时间】:2016-07-20 04:19:22
【问题描述】:

将 anaconda python3 全新安装到运行小牛的 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 中没有符号链接。

我没有从 Cellar 的所有库中向 /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

我对@9​​87654321@ 帖子的理解是,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?

【问题讨论】:

  • 您的环境中有 libgcc 吗?
  • “环境”是什么意思?我设置了环境变量 export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/Cellar/gcc/6.1.0/lib/gcc/6" 在那个文件夹中是 libgcc

标签: python macos gcc scikit-learn


【解决方案1】:

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

  1. 寻找你gcc的正确路径

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

【讨论】:

  • 小评论 - 我没有通过自制软件获得 gcc,但是升级到 Sierra 的一些事情破坏了我的安装;我只需要运行ln -s /usr/local/lib/gcc/6/lib* /usr/local/lib/,现在一切正常。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-05-02
  • 2017-05-16
  • 2017-05-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 2019-07-11
  • 2016-08-11
相关资源
最近更新 更多