PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

python pip instalar erro de instalação psycopg2


A resposta aceita aqui está correta (exceto que acho que deve ser ln -fs , na verdade, acho que pode até arriscar desestabilizar seu sistema operacional se não (?)). Depois de topar com isso e lidar com isso, eu só quero coletar a solução completa para este problema e o outro problema da lib (libcrypto.1.0.0.dylib) que você encontrará para o Postgres 9.* no Mountain Lion e Snow Leopard, e talvez outros sistemas. Isso também me impediu de executar o psql, que reclamou das mesmas duas bibliotecas.

Essencialmente, existem duas bibliotecas de versão posterior necessárias em /usr/lib , libssl e libcrypto. Você pode encontrar as versões necessárias dessas bibliotecas no diretório lib do Postgres.
  • Se você for OSX e instalou a versão Enterprise DB do Postgres, ela estará em /Library/PostgreSQL/9.2/lib .
  • Para outros tipos de instalação do Postgres, procure o diretório lib dentro do diretório de instalação do Postgress, por exemplo, para Postgress.app, encontre o diretório lib em /Applications/Postgres.app/Contents/MacOS/lib ,
  • para preparar em algum lugar em /usr/local/Cellar ,
  • no *nix, onde quer que sua instalação esteja. Mas veja primeiro em *nix se sua distro tem versões posteriores apenas através do gerenciador de pacotes.

Primeiro copie a última dessas duas libs do diretório lib do Postgres para /usr/lib :
sudo cp /Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib /usr/lib
sudo cp /Library/PostgreSQL/9.2/lib/libcrypto.1.0.0.dylib /usr/lib

Em seguida, atualize (ou crie) os links simbólicos /usr/lib para esta biblioteca. De qualquer forma, o comando é ln -fs :
sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib
sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

Deve ser corrigido. Com certeza ln -fs é melhor do que deletar o link simbólico e refazê-lo, então há menos chance de libssl não ser encontrada por algo que precise dele no momento em que não estiver presente (ele faz a mesma coisa; primeiro exclui o link simbólico se estiver já está lá, apenas mais rápido do que você pode digitá-lo). Sempre cauteloso ao mexer em /usr/lib.