【发布时间】: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
我对@987654321@ 帖子的理解是,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