Eu estava tentando instalar o postgres para um tutorial, mas pip
me deu um erro:
pip install psycopg
Um recorte de erro que recebo:
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
Onde está pg_config
meu virtualenv? Como configurar isso? Estou usando o virtualenv porque não quero uma instalação do postgres em todo o sistema.
Respostas:
No Mac, se você estiver usando Postgres.app , o arquivo pg_config está em seu
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
diretório. Isso precisará ser adicionado ao caminho do sistema para corrigir este erro, como este:Então, por exemplo, se a versão atual do Postgres.app for 9.5, esta linha de exportação seria:
Com versões mais recentes do Postgres.app (> 9.5?), Você pode simplesmente adicionar "mais recente" no lugar do número da versão, assim:
fonte
9.4
.bash_profile
estiver usando o bash padrão do Terminal. SE usarzsh
anexe esta linha ao.zshrc
arquivo. Tudo isso você encontrará em seu diretório inicial. (apenasls -la
)<current_version>
porlatest
qual aponta para a versão mais recente do Postgres instalado. Minha pasta se parece com:ls /Applications/Postgres.app/Contents/Versions/
e dá9.5/ latest/
No Mac, a solução é instalar
postgresql
:No CentOS, a solução é instalar
postgresql-devel
:pg_config
está nopostgresql-devel
pacotefonte
Eu concordo totalmente com john hight que a maioria das respostas postadas são totalmente offtopic, assumindo que o OP precisa exatamente de usar o virtualenv .
Para mim, a resposta foi executar o seguinte comando no prompt ao ativar o virtualenv:
(observe que a parte 9.4 significa versão e pode variar)
ou se você quiser usar a versão mais recente instalada do Postgres:
e depois:
vai supondo que você instalou o postgres com sucesso. E se não, lembre-se que a melhor e recomendada solução é usar: Postgres.app
fonte
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
se você quiser usar a última versão instalada do PostgresNão se esqueça de que sua variável $ PATH no ambiente virtual! = Sua variável $ PATH global. Você pode confirmar isso com 'echo $ PATH' em seu virtualenv e também em um novo shell. Então, a menos que você queira instalar o PostgreSQL como uma instância única dentro de seu ambiente virtual (algo que não valha a pena fazer, imo), você precisará modificar a variável $ PATH dentro do virtualenv para incluir o caminho para sua instalação global (que irá resolver seu erro de falta de pg_config).
Aqui estão as etapas:
1.) Em um novo shell, digite 'which pg_config'. Isso retornará o caminho. Copie. No meu caso, o caminho era assim: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) De volta ao seu shell virtualenv, digite 'export PATH = / your-path-to-pg_config: $ PATH'
3.) Então, ainda dentro do virtualenv, 'pip install psycopg2'
Se tudo correr de acordo com o planejado, o psycopg2 será instalado no ambiente virtual, mas a instalação se referirá à sua instalação Global do PostgreSQL. No meu caso, esta instalação global foi instalada via Postgres.App, daí o caminho. Prefiro esse método de trabalho com psycopg2, pois significa que posso usar o banco de dados facilmente em qualquer virtualenv, em vez de apenas no ambiente virtual definido.
Espero que isso ajude quem chega aqui. Para o Google juice, aqui está a linguagem de erro explícita (e vaga) retornada quando você se depara com este problema:
Command python setup.py egg_info falhou com o código de erro 1
fonte
Veja como consegui resolver esse problema no meu Mac (OSX 10.9):
Recebi um erro CLANG quando tentei
pip install psycopg
(um problema do LLVM 5.1 ), então tive que instalar o psycopg com este comando:É semelhante à solução de Mingyu , mas existem diferenças suficientes que achei que valeria a pena compartilhar.
fonte
Este erro é causado quando as ferramentas de construção não conseguem encontrar as bibliotecas Postgresql.
Freqüentemente, é necessário instruir o psycopg2 sobre como encontrar o binário pg_config, você pode:
adicione o caminho para pg_config em seu caminho de shell (/ usr / local / pgsql / bin /)
ou edite o arquivo setup.cfg na pasta de origem psycopg2 e forneça o caminho completo para pg_config na linha que começa com pg_config =
locate pg_config
para descobrir onde ele reside, ou simplesmente digitarwhich pg_config
e ele deve indicar o caminho.Com menos frequência, o erro vem de não ter o postgresql instalado em seu sistema. Em caso afirmativo, baixe e crie postgres ou baixe um binário psycopg2 pré-compilado para OS X.
fonte
Para
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:Depois de instalar
PostgreSQL 9.5
:Em seguida, abra seu terminal e execute:
fonte
você deve configurar o caminho postgresql:
depois, você deve instalar os requisitos:
fonte
virtualenv é para pacotes python. Eu não acho que você será capaz de conter o postgres dentro de um virtualenv. A mensagem de erro que você está vendo é provavelmente porque você ainda não instalou o postgres. O script de instalação psycopg2 está procurando por arquivos postgres (neste caso pg_config) e não os encontra porque não está instalado. postgres não pode ser instalado usando pip ou virtualenv.
fonte
No Windows, instalei o postgres manualmente em http://www.enterprisedb.com/products-services-training/pgdownload#windows . Depois disso, o mesmo comando funciona.
fonte
Além das respostas fornecidas por @bkev e @andi, de acordo com a documentação em Postgres.app, você deve adicionar o seguinte ao seu bash_profile no Mac:
Observe que não há número de versão codificado. Eu queria adicionar isso como um comentário às respostas acima, mas não tenho representantes suficientes para isso.
fonte
Se você estiver usando o postgresql 9.4, o arquivo está localizado em
O nome do pacote é
para adicionar pg_config ao seu PATH, faça o seguinte
fonte
Se você não precisar usar o
psycopg
driver especificamente, mude para opg8000
driver. É Python puro e menos enjoado.fonte
No Ubuntu, eu só precisava do pacote dev postgres:
fonte
O meu estava localizado em /Library/PostgreSQL/9.4/bin
fonte