2016-07-20 5 views
2

Свежая установка anaconda python3 на дополнительный жесткий диск mac running mavericks.импорт sklearn ошибка с anaconda python 3.52

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 

НКУ был установлен с самогоном и существует.

which gcc 

дает

/usr/bin/gcc 

В /usr/local/Cellar/gcc/6.1.0/lib/gcc/6 я могу найти libgcc_s.1.dylib, так что я знаю, что там даже то ему не был привязан в/usr/local/lib.

Вместо добавления дополнительных символических ссылок в/usr/local/lib из всех библиотек в Cellar я вместо этого добавил расположение библиотек в путь поиска.

В моем ~ .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 нужен?

+0

у вас есть libgcc в вашей среде? – cel

+0

Что значит «окружающая среда»? Я установил экспорт переменной среды LIBRARY_PATH = "$ LIBRARY_PATH: /usr/local/Cellar/gcc/6.1.0/lib/gcc/6" В этой папке находится libgcc – aquagremlin

ответ

2

У меня была та же проблема. То, что я сделал, это создание символических ссылок из папки моего подвала gcc в/usr/local/lib.

  1. ищет правильный путь вам Gcc

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

+0

Небольшой комментарий. У меня нет gcc через homebrew, но что-то об обновлении до Сьерры сломало некоторые вещи в моих установках; Мне просто нужно было запустить 'ln -s/usr/local/lib/gcc/6/lib */usr/local/lib /', и теперь все работает. Благодаря! – dwanderson

+1

Он работает! Благодаря! – linello