2012-07-02 2 views
12

Ich versuche Postgis zu installieren, um GeoDjango unter OSX zu verwenden.fehlt libgeos_c.so auf OSX

Dazu habe ich zunächst deinstalliert postgres komplett, dann installierte ich alles nach dem GeoDjango Dokumentation: https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#homebrew

ich folgendes hat:

brew update 
brew upgrade 
brew install postgresql 
brew install postgis 
brew install gdal 
brew install libgeoip 

Wenn ich meine Django-Projekt ausführen, bekomme ich die folgende Fehler:

OSError at/dlopen(/usr/local/lib/libgeos_c.so, 6): image not found 

ich lief

sudo find . -name "libgeos_c*" 

Und bekam:

./Library/Frameworks/GEOS.framework/Versions/3/unix/lib/libgeos_c.dylib 
./Users/martin/opt/geos-3.3.0/capi/.deps/libgeos_c_la-geos_c.Plo 
./Users/martin/opt/geos-3.3.0/capi/.deps/libgeos_c_la-geos_ts_c.Plo 
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.1.dylib 
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.a 
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.dylib 
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.1.dylib 
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.a 
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.dylib 
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.1.dylib 
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.a 
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.dylib 
./usr/local/lib/libgeos_c.1.dylib 
./usr/local/lib/libgeos_c.a 
./usr/local/lib/libgeos_c.dylib 

Wie Sie sehen können, keine ".so" Dateien überhaupt. Irgendwelche Vorschläge?

Edit:

Aus Verzweiflung habe ich installiert auch die KyngChaos Pakete und fügten die folgenden Einstellungen:

GEOS_LIBRARY_PATH = '/Library/Frameworks/GEOS.framework/GEOS' 
GDAL_LIBRARY_PATH = '/Library/Frameworks/GDAL.framework/GDAL' 
GEOIP_LIBRARY_PATH = '/usr/local/Cellar/geoip/1.4.8/lib/libGeoIP.dylib' 

Dies löste das Problem.

+0

Ich habe Gebräu GEOS auf Mac installieren. Aber der GEOS_LIBRARY_PATH ist auf meinem Rechner nicht derselbe wie dein. Weißt du, wo es gefunden werden kann? Ich habe versucht, find zu finden, aber ich konnte die .so-Datei in keinem der Ordner finden, für die ich Leseberechtigung habe. Ich habe keine Sudo-Rechte. –

Antwort

16

Entschuldigung, dass die Lösung von KyngChaos den Zweck der Verwendung von Homebrew vollständig vereitelt.

Die Antwort für homebrew Anwender (zumindest für diese) ist Deinstallations geos und ihre Abhängigkeiten und dann geos installieren und ihre Abhängigkeiten dann.

Das ist für mich gearbeitet:

brew uninstall geos gdal geoip libspatialite librasterlite spatialite-gui spatialite-tools 
brew cleanup 
brew install geos 
brew install gdal geoip libspatialite librasterlite spatialite-gui spatialite-tools 
brew cleanup 

es einige geos Abhängigkeiten scheint sind nicht synchron zu bekommen.

Sie können die Bibliotheken überprüfen, die installiert werden müssen, um durch die Verfolgung, was dieser zurückgibt:

python -c 'import _ctypes; _ctypes.dlopen("/usr/local/lib/libgdal.dylib")' 

Sie werden etwas sehen, wie

Reason: Incompatible library version: [some geos dependent library].dylib requires version X.X.X or later, but libgeos_c.1.8.0.dylib provides version X.X.X. 

brew uninstall [some geos dependency] 
brew install [some geos dependency] 
brew cleanup 

Dann wiederholen Sie die oben python Befehl und entweder Das Problem wird gelöst oder es wird eine weitere Abhängigkeit zum Deinstallieren/Installieren angezeigt.

+1

Ich denke, ich bin in der Nähe, jetzt bekommen django.db.utils.OperationalError: konnte nicht auf die Datei "$ libdir/postgis-2.1" zugreifen: Keine solche Datei oder Verzeichnis, dass Python-Import-Test keine Fehler wirft. Ich musste postgis deinstallieren, uninstall postgis brauen und dann erneut mit brauen installieren. – radtek

+0

Nachdem ich Stunden damit verbracht hatte, rettete mich das endlich. – xrage

2

Die installation instructions scheint die Antwort zu enthalten, nämlich die Umgebungsvariable $GEOS_LIBRARY_PATH zu setzen.

+0

Das zeigte mir in die richtige Richtung. Ich habe diesen Teil der Dokumentation ignoriert, weil er zum einen im KyngChaos-Bereich (ich folgte dem Homebrew-Bereich) und zum anderen mit dem Hinweis: "Wenn Sie eine frühere Version von Django verwenden (wie 1.0.2), müssen Sie füge folgendes in deine Einstellungen ein "und verwende Django 1.4. Aus Verzweiflung habe ich auch die KyngChaos-Route ausprobiert und obwohl die fehlende Datei nicht erstellt wurde, konnte ich sie mit einigen zusätzlichen Einstellungen ausführen. – mbrochh

+0

Hey kannst du die Antwort von nicerobot als am besten markieren? – radtek

+0

@radtek Wer bin ich? – trojanfoe

0

Das gleiche hier - nach der Installation alles wie angewiesen, ging ich zurück und fügte die KyngChaos-Bibliotheken hinzu, fügte dann die drei Exportanweisungen zu meinem ~/.bash_profile wie oben aufgeführt hinzu. Das hat mein Problem behoben.

1

Ich löste es so.

$ brew install postgresql 
$ brew install postgis 
$ brew install gdal 
$ brew install libgeoip 

dann in Django-Einstellungen diesen Satz:

GEOS_LIBRARY_PATH = '/usr/local/Cellar/geos/3.4.2/lib/libgeos_c.1.dylib' 

Dann für mich gearbeitet.