2013-11-02 12 views
37

che uso python in Fedora 19. Volevo eseguire la seguente riga di Python: import shapely.geometry viene visualizzato il seguente errore:Impossibile trovare geos_c biblioteca o caricare una qualsiasi delle sue varianti

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

I installato il pacchetto Shapely e le seguenti due librerie:

glibc-2.17-4.fc19.i686.rpm

geo s-3.3.8-2.fc19.i686.rpm

Ho appena guardato per la soluzione di questo problema sul web, ma non ho trovato

Per favore, aiutatemi!

+0

per Centos7 vedere: http://stackoverflow.com/questions/42097501/centos-libgeos-repository-missing yum install GEOS-devel –

risposta

2

Formosa loads geos via ctypes.

Prova questo nel tuo pitone e vedere se si ottiene nulla:

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

Se non funziona, allora l'installazione GEOS probabilmente incasinato. In base allo this, le aree geografiche dovrebbero essere in /usr/lib/libgeos_c.so.1. La tua biblioteca è effettivamente lì?

+0

Nessun risultato significa che Python non ha trovato la libreria (è tornato ' none'). Su Linux, python usa '/ sbin/ldconfig -p' per trovare le librerie (puoi eseguire quel comando e cercare libgeos). Direi che il tuo RPM di geos manca una dipendenza o non è stato installato correttamente. – Seth

+1

Sto avendo lo stesso problema. Ho eseguito 'da ctypes.util import find_library find_library ('geos_c')' E ha restituito ''libgeos_c.so.1'' quindi sembra che sia lì ... – bsf10

59

Installato shapely utilizzando pip, e ha avuto lo stesso problema. Così sono andato avanti e l'ho installato in questo modo:

sudo apt-get install libgeos-dev 

E ha funzionato. Io corro Ubuntu, quindi se siete su Fedora, è necessario eseguire:

sudo yum install geos-devel 
+0

Su Fedora, dovrebbe essere' sudo yum installa geos-devel' – kadee

+0

Questo ha funzionato per me. Grazie. +1. – rayryeng

3

impostare il LD_LIBRARY_PATH, quindi eseguire python

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

pitone mytest.py

2

Se si sta utilizzando Anaconda come me e corse in questo, copiare i file da libgeos */usr/lib alla directory Anaconda/lib e provare di nuovo ... :) Speriamo che questo salva qualcun altro, perché ho passato ore su questo.

+0

Ti ricordi qualche altro passo che dovevi prendere? L'ho installato per la prima volta tramite brew e poi ho copiato i file nella cartella anaconda lib come mi hai suggerito, ma sto ancora ottenendo 'OSError: Impossibile trovare lib geos_c o caricare nessuna delle sue varianti ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS ',' /opt/local/lib/libgeos_c.dylib ']. 'Quando cerco di eseguire il mio script. La parte strana è stata che l'installazione tramite brew è stata sufficiente per consentire a pip di iniziare a lavorare. – Bani

+1

Sto usando Anaconda su Ubuntu 16 e ho avuto un errore simile, anche con libgeos-dev installato in precedenza. La soluzione per me era 'conda install geos' e successivamente, all'interno del mio ambiente condog, l'installazione di pipe ha funzionato benissimo. – svohara

0

Ho avuto lo stesso problema e per risolverlo, è necessario aggiungere il percorso lib al file ld.so.conf.

A tale scopo, aprire il file:

sudo vi /etc/ld.so.conf 

aggiungere questa riga

/usr/local/lib 

E poi

sudo /sbin/ldconfig 
3

su Fedora installare GEOS e GEOS-devel

sudo yum install geos geos-devel 
0

In ubuntu, i seguenti comandi dovrebbero occuparsene. Tutto si riduce ai seguenti pacchetti.

sudo apt-get install libgeos-c1 libgeos-3.4.2 
Problemi correlati