[python] Mac + virtualenv + pip + postgresql = 오류 : pg_config 실행 파일을 찾을 수 없음
튜토리얼을 위해 postgres를 설치하려고했지만 pip
오류가 발생합니다.
pip install psycopg
내가 얻는 오류의 일부 :
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'.
pg_config
내 가상 환경 은 어디에 있습니까 ? 어떻게 구성합니까? 시스템 전체에 postgres를 설치하지 않기 때문에 virtualenv를 사용하고 있습니다.
답변
Mac에서 Postgres.app을 사용 하는 경우 pg_config 파일은 /Applications/Postgres.app/Contents/Versions/<current_version>/bin
디렉터리에 있습니다. 이 오류를 수정하려면 다음과 같이 시스템 경로에 추가해야합니다.
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
예를 들어 현재 Postgres.app 버전이 9.5 인 경우이 내보내기 행은 다음과 같습니다.
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
최신 버전의 Postgres.app (> 9.5?)에서는 다음과 같이 버전 번호 대신 “최신”을 추가 할 수 있습니다.
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
답변
Mac에서 해결책은 다음을 설치하는 것입니다 postgresql
.
brew install postgresql
CentOS에서 해결책은 다음을 설치하는 것입니다 postgresql-devel
.
sudo yum install postgresql-devel
pg_config
에 postgresql-devel
패키지
답변
나는 대부분의 게시 된 답변이 OP가 virtualenv 사용에 대한 요구를 정확히 지정했다고 가정하고 완전히 주제를 벗어났다는 john hight에 전적으로 동의합니다 .
나를 위해 대답은 virtualenv를 활성화하는 동안 프롬프트에서 다음 명령을 실행했습니다.
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(파트 9.4는 버전을 나타내며 다를 수 있습니다.)
또는 최신 설치된 Postgres 버전 을 사용하려는 경우 :
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
그리고:
pip install psycopg2
postgres를 설치했다고 가정합니다. 그렇지 않은 경우 가장 좋고 권장되는 솔루션은 Postgres.app 을 사용하는 것임을 기억하십시오.
답변
가상 환경의 $ PATH 변수! = 전역 $ PATH 변수를 잊지 마십시오. virtualenv와 새 셸에서 ‘echo $ PATH’로이를 확인할 수 있습니다. 따라서 가상 환경 내에서 고유 한 인스턴스로 PostgreSQL을 설치하지 않으려면 (할 가치가 없습니다. imo) virtualenv 내에서 $ PATH 변수를 수정하여 전역 설치 경로를 포함해야합니다. 누락 된 pg_config 오류를 해결하십시오).
단계는 다음과 같습니다.
1.) 새 셸에서 ‘which pg_config’를 입력합니다. 경로를 반환합니다. 복사하십시오. 제 경우 경로는 다음과 같습니다. /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) virtualenv 셸로 돌아가서 ‘export PATH = / your-path-to-pg_config : $ PATH’를 입력합니다.
3.) 그런 다음 여전히 virtualenv 내에서 ‘pip install psycopg2’
모든 것이 계획대로 진행되면 가상 환경 내에 psycopg2가 설치되지만 설치는 Global PostgreSQL 설치를 참조합니다. 필자의 경우이 전역 설치는 Postgres.App을 통해 설치되었으므로 경로입니다. 정의 된 가상 환경 내에서만이 아니라 모든 virtualenv 내에서 쉽게 데이터베이스를 사용할 수 있다는 것을 의미하므로 psycopg2로 작업하는이 방법을 선호합니다.
여기에 도착하는 모든 사람에게 도움이되기를 바랍니다. Google juice의 경우 다음은이 문제가 발생할 때 반환되는 명시적이고 모호한 오류 언어입니다.
Command python setup.py egg_info failed with error code 1
답변
Mac (OSX 10.9)에서이 문제를 해결하는 방법은 다음과 같습니다.
brew update
brew install --force ossp-uuid
brew install postgresql
pip install psycopg
시도 할 때 CLANG 오류 pip install psycopg
( LLVM 5.1 문제 )가 발생하여 대신이 명령을 사용하여 psycopg를 설치해야했습니다.
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Mingyu의 솔루션 과 비슷 하지만 공유 할 가치가 있다고 생각한 차이가 충분합니다.
답변
이 오류는 빌드 도구가 Postgresql 라이브러리를 찾을 수 없을 때 발생합니다.
종종 psycopg2에게 pg_config 바이너리를 찾는 방법을 지시해야합니다. 다음을 수행 할 수 있습니다.
-
셸 경로 (/ usr / local / pgsql / bin /)에 pg_config에 대한 경로를 추가합니다.
-
또는 psycopg2 소스 폴더에서 setup.cfg 파일을 편집하고 pg_config =로 시작하는 줄에 pg_config의 전체 경로를 제공합니다.
pg_config = / usr / local / pgsql / bin / pg_config
- 위의 예는
locate pg_config
위치를 찾거나 단순히 입력which pg_config
하면 경로를 알려줄 수 있습니다.
오류는 시스템에 postgresql이 설치되어 있지 않아 발생하는 경우가 적습니다. 그렇다면 postgres를 다운로드하여 빌드하거나 OS X 용으로 미리 빌드 된 psycopg2 바이너리를 다운로드하십시오.
답변
대한 OS X El Capitan (10.11.6)
+ brew
+ virtualenv
+ PostgreSQL 9.5
:
설치 후 PostgreSQL 9.5
:
brew install postgresql@9.5
그런 다음 터미널을 열고 다음을 실행하십시오.
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/
pip install psycopg2