使用anaconda python 3.52导入sklearn错误

时间:2016-07-20 04:19:23

标签: python macos gcc scikit-learn

将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与家庭酿造一起安装并存在。

which gcc

给出

/usr/bin/gcc

在/usr/local/Cellar/gcc/6.1.0/lib/gcc/6我可以找到libgcc_s.1.dylib所以我知道它甚至在/ usr / local / lib中没有符号链接。< / p>

我没有在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

我对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?

1 个答案:

答案 0 :(得分:2)

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

  1. 寻找你正确的道路gcc

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