Shapely OSError: не удалось найти lib c или загрузить какой-либо из ее вариантов []

Я просто пытаюсь использовать демо-код. Я запускаю следующее в Jupyter Notebook:

from shapely.geometry import shape

Что дает мне следующее:

OSError                                   Traceback (most recent call last)
<ipython-input-4-cf5b4d0962ea> in <module>()
----> 1 from shapely.geometry import shape

/Users/hkwik/anaconda/lib/python2.7/site-packages/shapely/geometry/__init__.py in <module>()
      2 """
      3 
----> 4 from .base import CAP_STYLE, JOIN_STYLE
      5 from .geo import box, shape, asShape, mapping
      6 from .point import Point, asPoint

/Users/hkwik/anaconda/lib/python2.7/site-packages/shapely/geometry/base.py in <module>()
      7 from ctypes import pointer, c_size_t, c_char_p, c_void_p
      8 
----> 9 from shapely.coords import CoordinateSequence
     10 from shapely.ftools import wraps
     11 from shapely.geos import lgeos, ReadingError

/Users/hkwik/anaconda/lib/python2.7/site-packages/shapely/coords.py in <module>()
      6 from ctypes import byref, c_double, c_uint
      7 
----> 8 from shapely.geos import lgeos
      9 from shapely.topology import Validating
     10 

/Users/hkwik/anaconda/lib/python2.7/site-packages/shapely/geos.py in <module>()
     81         _lgeos = load_dll('geos_c', fallbacks=alt_paths)
     82 
---> 83     free = load_dll('c').free
     84     free.argtypes = [c_void_p]
     85     free.restype = None

/Users/hkwik/anaconda/lib/python2.7/site-packages/shapely/geos.py in load_dll(libname, fallbacks, mode)
     59         raise OSError(
     60             "Could not find lib {0} or load any of its variants {1}.".format(
---> 61                 libname, fallbacks or []))
     62 
     63 _lgeos = None

OSError: Could not find lib c or load any of its variants [].

Однако, если я запускаю из интерпретатора, все в порядке.

Есть идеи, что происходит?


person Huey    schedule 12.10.2016    source источник
comment
Вы уже пробовали какие-либо решения? Это похоже на эксклюзивную проблему OSX, на Github есть две проблемы по этому поводу: .com/carsonfarmer/python_geospatial/issues/ и github.com/ Тоблерити/Shapely/issues/394#issuecomment-235163776   -  person chrki    schedule 20.11.2016
comment
Вы используете виртуальную среду? Как ты установил юпитер? Стандарт?   -  person Eugene Lisitsky    schedule 24.11.2016
comment
Должен сказать, что комментарий @chrki выглядит так, как будто это ответ - вы пробовали @Huey?   -  person J Richard Snape    schedule 25.11.2016
comment
Возможный дубликат stackoverflow.com/questions/19742406/ Необходимо установить пакеты libgeos-c1 libgeos-3.4.2 libgeos-dev   -  person Priyank Mehta    schedule 04.05.2017
comment
Возможный дубликат Не удалось найти библиотеку geos_c или загрузите любой из его вариантов   -  person Priyank Mehta    schedule 04.05.2017


Ответы (8)


Я просто удалил Shapely и переустановил его, чтобы решить проблему.

python -m pip uninstall shapely

python -m pip install shapely
person Zac    schedule 16.11.2020
comment
Чудеса техники не перестают меня удивлять. - person rosstex; 28.11.2020
comment
Выполнение pip3 install shapely --upgrade - еще одно решение, которое сработало для меня. - person tommy.carstensen; 22.12.2020

Вы можете попробовать сбросить переменную окружения DYLD_FALLBACK_LIBRARY_PATH:

export DYLD_FALLBACK_LIBRARY_PATH=$(HOME)/lib:/usr/local/lib:/lib:/usr/lib

Источник

person user2977865    schedule 14.08.2018
comment
В моей среде для DYLD_FALLBACK_LIBRARY_PATH было установлено значение $(HOME)/anaconda/lib. После замены все работает хорошо. - person user2977865; 14.08.2018

Как я это исправил:

apk add geos libc-dev musl-dev
pip install Shapely
person eddd    schedule 02.07.2019

Для меня работает только после установки Shapely из shapely lib и выполнения следующую команду из Anaconda Prompt:

pip install Shapely-1.7.1-cp37-cp37m-win_amd64.whl --force-reinstall

Это заставляет переустановить shapely.

person jmg    schedule 29.12.2020

@user2977865 и @anothernode правы в своем подходе, но он может не работать для всех. По умолчанию shapely будет искать библиотеки в каталоге DYLD_PATH.

У меня было установлено значение DYLD_LIBRARY_PATH=/usr/local/lib/:/usr/local/mysql/lib/

Но эти библиотеки размещены в /usr/lib.

Поэтому мне пришлось изменить его следующим образом:

export DYLD_LIBRARY_PATH=/usr/lib/:/usr/local/mysql/lib/

Дополнительное примечание: убедитесь, что ваши переменные среды были установлены, перезапустив терминал и очистив кеш всех IDE, которые вы можете использовать.

person umarr    schedule 23.08.2019

У меня была очень похожая проблема с запуском кода в aws lambda с сообщением об ошибке:

 OSError: Could not find lib c or load any of its variants ['libc.musl-x86_64.so.1'].

Я добавил musl-dev в свою установку контейнера и адаптировал символическую ссылку:

ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1
person dl.meteo    schedule 12.04.2021

Мне пришлось сделать conda update --all, чтобы исправить это.

person Kannappan Sirchabesan    schedule 18.05.2021

Попробуйте это может помочь вам:

pip install --upgrade --force-reinstall shapely
person BonieSV    schedule 29.06.2021