2014-10-09 6 views
48

corro "sudo pip installare psycopg2" e ho un po 'di output che assomigliaerrore di installazione psycopg2, biblioteca non trovato per -lssl

cc -DNDEBUG -g -fwrapv -Os ..... 
..... 
cc -DNDEBUG -g -fwrapv -Os ..... 
..... 

E alla fine si dice:

ld: library not found for -lssl 

clang: error: linker command failed with exit code 1 (use -v to see invocation) 

error: command 'cc' failed with exit status 1 

---------------------------------------- 
Cleaning up... 
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip-uE3thn-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip_build_root/psycopg2 
Storing debug log for failure in /Users/Tyler/Library/Logs/pip.log 

Esecuzione easy_install o farlo dalla fonte entrambi mi danno lo stesso errore alla fine (la parte riguardante libreria non trovato per -ls sl).


esecuzione birra installare (o aggiornare) openssl produce il seguito

$ brew upgrade openssl 
Error: openssl-1.0.1h already installed 

Qualcuno può darmi una mano?

risposta

-2

sono riuscito a risolvere il problema utilizzando:

brew unlink openssl && brew link openssl --force 

io non sono sicuro di come questo si differenzia dalla birra di disinstallazione/aggiornamenti che ho fatto su OpenSSL in precedenti tentativi che ho fatto. La mia ipotesi è che queste operazioni abbiano lasciato alcune delle librerie condivise "difettose" che impedivano il funzionamento di questo. Si noti che questo ha anche risolto problemi con l'installazione del modulo di crittografia python.

+4

ottengo questo errore: 'Rifiutando di collegamento : openssl' – Flimm

150

Per chi cerca una soluzione per questo su MacOS Sierra 10.12: Ho fissato questo installando gli strumenti della riga di comando:

xcode-select --install 

Dopo di che, pip install psycopg2 dovrebbe funzionare.

Se così non fosse, si potrebbe anche provare a collegare contro OpenSSL di birra:

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2 

con OpenSSL installato tramite birra. Si noti che il brew link openssl --force non funziona più:

$ brew link openssl --force                     17.5s 
Warning: Refusing to link: openssl 
Linking keg-only openssl means you may end up linking against the insecure, 
deprecated system OpenSSL while using the headers from Homebrew's openssl. 
Instead, pass the full include/library paths to your compiler e.g.: 
    -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib 

Come @macho sottolinea seguito se questo ancora non funziona, potrebbe essere necessario utilizzare l'opzione --no-cache di pip, per esempio

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2 
+0

Ho lottato con questo fuori e avanti per molto tempo! Grazie mille!!! –

+5

In realtà, 'xcode-select --install' potrebbe essere sufficiente, questo dovrebbe usare il sistema fornito' ssl'. Aggiornerò il mio commento sopra. – sas

+6

xcode-select install è abbastanza buono per il sistema python. Ma non funziona per gli ambienti virtuali. –

5

Quando si esegue brew link openssl ottengo il seguente messaggio:

$ brew link openssl 
Warning: Refusing to link: openssl 
Linking keg-only openssl means you may end up linking against the insecure, 
deprecated system OpenSSL while using the headers from Homebrew's openssl. 
Instead, pass the full include/library paths to your compiler e.g.: 
    -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib 

Seguendo questi consigli ecco il comando pip è necessario utilizzare:

$ pip install -r requirements.txt --global-option=build_ext --global-option="-I/usr/local/opt/openssl/include" --global-option="-L/usr/local/opt/openssl/lib" 
Problemi correlati