Die Bibliothek geos_c konnte nicht gefunden oder eine ihrer Varianten geladen werden

69

Ich verwende Python in Fedora 19. Ich wollte die folgende Zeile ausführen:

import shapely.geometry

aber der folgende Fehler erscheint:

OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']

Ich habe das Paket Shapely und die folgenden zwei Bibliotheken installiert:

  • glibc-2.17-4.fc19.i686.rpm
  • geos-3.3.8-2.fc19.i686.rpm.

Was kann ich tun, um das Problem zu lösen?

user2947767
quelle
Für Centos7 siehe: stackoverflow.com/questions/42097501/… yum install geos-devel
Deo Leung

Antworten:

106

Mit pip formschön installiert und hatte das gleiche Problem. Also habe ich es so installiert:

sudo apt-get install libgeos-dev

Und es hat funktioniert. Ich verwende Ubuntu. Wenn Sie also Fedora verwenden, sollten Sie Folgendes ausführen:

sudo yum install geos-devel
PaF
quelle
1
Auf Fedora sollte es seinsudo yum install geos-devel
Kadee
7
auf Mac OSbrew install geos
Rowland Mtetezi
6

Setze das LD_LIBRARY_PATHund starte dann Python

export LD_LIBRARY_PATH=/path_to/geos/lib:$LD_LIBRARY_PATH

python mytest.py
test44
quelle
4

In Ubuntu sollten die folgenden Befehle dafür sorgen. Alles hängt von den folgenden Paketen ab.

(Original 2017)

sudo apt-get install libgeos-c1 libgeos-3.4.2

EDIT: (aktualisierte Versionen 2020)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1
Paco Bahena
quelle
3

Shapely Lasten GEOS über ctypes .

Versuchen Sie dies in Ihrer Python und sehen Sie, ob Sie etwas bekommen:

from ctypes.util import find_library
find_library('geos_c')

Wenn es nicht funktioniert, ist Ihre Geos-Installation wahrscheinlich durcheinander. Laut dieser sollte Ihr GEOS sein /usr/lib/libgeos_c.so.1. Ist Ihre Bibliothek tatsächlich da?

Seth
quelle
Kein Ergebnis bedeutet, dass Python die Bibliothek nicht gefunden hat (sie wurde zurückgegeben None). Unter Linux /sbin/ldconfig -psucht Python nach Bibliotheken (Sie können diesen Befehl ausführen und nach Libgeos suchen). Ich würde vermuten, dass Ihrem Geos-RPM eine Abhängigkeit fehlt oder nicht richtig installiert wurde.
Seth
3
Ich habe das gleiche Problem. Ich rannte from ctypes.util import find_library find_library('geos_c')Und es kehrte zurück, 'libgeos_c.so.1'so dass es aussieht, als wäre es da ...
bsf10
3

Installieren Sie auf Fedora Geos und Geos-Devel

sudo yum install geos geos-devel
Bob Baxley
quelle
2

Wenn Sie Anaconda wie ich verwenden und darauf gestoßen sind, kopieren Sie die libgeos * -Dateien aus / usr / lib in das Verzeichnis anaconda / lib und versuchen Sie es erneut ... :) Hoffentlich spart dies jemand anderen, da ich Stunden damit verbracht habe diese.

Nick
quelle
Erinnerst du dich an einen anderen Schritt, den du machen musstest? Ich habe es zuerst über Brew installiert und dann die Dateien in den Ordner anaconda lib kopiert, wie Sie vorgeschlagen haben, aber ich bekomme es immer noch, 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'].wenn ich versuche, mein Skript auszuführen. Das Seltsame war, dass die Installation über Brew genug war, damit Pip anfing zu arbeiten.
Bani
2
Ich verwende Anaconda unter Ubuntu 16 und hatte einen ähnlichen Fehler, auch wenn libgeos-dev zuvor installiert war. Die Lösung für mich war conda install geosund danach funktionierte die Pip-Installation in meiner Conda-Umgebung einwandfrei.
Svohara
1

Ich hatte kein Problem mit Jupyter Notebook, aber als ich PyCharm verwendete, trat dieses Problem auf. Versucht mehrere Dinge Windows auf dem Computer und die folgenden Schritte zur Fehlerbehebung haben das Problem behoben

pip install geos

Gehen Sie zu PyCharm, Datei-> Einstellungen-> Projekt-> Projektinterpreter (Überprüfen Sie, ob Sie den richtigen Pfad für Ihre python.exe-Datei haben) -> Hinzufügen Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie dies in Virtualenv Environment -> Base Interpreter und zeigen Sie auf die richtige Stelle, an der Sie die Datei python.exe haben

Gleiches gilt für System Interpreter-> Interpreter und auch Pipenv Environment -> Base Interpreter

Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass alle auf den richtigen Pfad zeigen. Ich bin auf dieses Problem gestoßen, da ich mehrere IDE und damit mehrere Verzeichnisse habe, in denen python.exe verfügbar ist. Sie haben auf falsche Verzeichnisse verwiesen.

Während der Fehlerbehebung habe ich auch deinstalliert und neu installiert, conda install shapelyda ich von PyCharm auf das Anaconda-Verzeichnis zeige. Ich hoffe es hilft.

Der folgende Link ist auch hilfreich: https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-upgrading-packages.html#conda-package-manager

Sa.
quelle
0

Ich hatte das gleiche Problem, und um es zu lösen, müssen Sie den lib-Pfad zur Datei ld.so.conf hinzufügen.

Öffnen Sie dazu die Datei:

sudo vi /etc/ld.so.conf

füge diese Zeile hinzu

/usr/local/lib

Und dann

sudo /sbin/ldconfig
Devdatta Tengshe
quelle