Не удалось импортировать Shapely / GEOS в Python на OSX

Я использую сваренный Python 2.7.11 на OS X El Capitan 10.11.3. У меня не получается импортировать Shapely/GEOS:

Failed `CDLL(/usr/local/lib/libgeos_c.dylib)`
Failed `CDLL(/Library/Frameworks/GEOS.framework/Versions/Current/GEOS)`
Failed `CDLL(/opt/local/lib/libgeos_c.dylib)`
Traceback (most recent call last):
  File "example.py", line 2, in <module>
    from shapely.geometry import Point
  File "/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages/shapely/geometry/__init__.py", line 4, in <module>
    from .base import CAP_STYLE, JOIN_STYLE
  File "/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages/shapely/geometry/base.py", line 9, in <module>
    from shapely.coords import CoordinateSequence
  File "/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages/shapely/coords.py", line 8, in <module>
    from shapely.geos import lgeos
  File "/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages/shapely/geos.py", line 92, in <module>
    mode=(DEFAULT_MODE | 16))
  File "/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages/shapely/geos.py", line 61, in load_dll
    libname, fallbacks or []))
OSError: Could not find lib geos_c or load any of its variants ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS', '/opt/local/lib/libgeos_c.dylib'].

Эта ошибка поразительно похожа на те, о которых сообщается здесь: Python не может импортировать shapely и Не удалось найти OSError geos_c при установке Shapely . После реализации всех предложений, которые «сработали» для других, я продолжаю получать эту ошибку.

Я установил геос с brew install geos сегодня. Он установлен в /usr/local/Cellar/geos/3.5.0.

Если я запускаю find / -name "libgeos_c.dylib", я нахожу три версии:

/Library/Frameworks/GEOS.framework/Versions/3/unix/lib/libgeos_c.dylib
/usr/local/Cellar/geos/3.5.0/lib/libgeos_c.dylib
/usr/local/lib/libgeos_c.dylib

Обратите внимание, что последняя строка — это точно тот же путь, что и в первой строке ошибки. Итак, Python не может импортировать существующий файл? Я знаю, что это псевдоним (для файла в Cellar), но был бы удивлен, если бы это было причиной.

Кроме того, $DYLD_LIBRARY_PATH и $GEOS_LIBRARY_PATH пусты при запуске, но установка любого из следующих значений не решает проблему:

export DYLD_LIBRARY_PATH=/usr/local/lib
export GEOS_LIBRARY_PATH=/usr/local/Cellar/geos/3.5.0
export GEOS_LIBRARY_PATH=/usr/local/Cellar/geos/3.5.0/lib

Любое понимание будет чрезвычайно приветствоваться! На это у меня ушло уже больше половины дня...


person Christoph Nolte    schedule 24.06.2016    source источник
comment
Возможно, стоит попробовать диспетчер пакетов anaconda python, если вы не можете решить проблему. Вы можете хранить его отдельно от вашей среды варки, и пакеты должным образом связаны с правильной (также через Anaconda) версией geos.   -  person songololo    schedule 02.07.2016
comment
Может быть, ваш DYLD_LIBRARY_PATH перезаписан где-то еще? Возможно, вместо этого попробуйте export DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH".   -  person Kotaro    schedule 27.10.2016
comment
В итоге я использовал Анаконду. Заработало ровно. Спасибо!   -  person Christoph Nolte    schedule 08.01.2017