pg_config 실행 파일을 찾을 수 없습니다


769

psycopg2 설치에 문제가 있습니다. 시도 할 때 다음 오류가 발생합니다 pip install psycopg2.

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'.

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2

그러나 문제는 pg_config실제로 내 안에있다 PATH. 문제없이 실행됩니다.

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

pg_config 경로를 setup.cfg파일에 추가 하고 웹 사이트 ( http://initd.org/psycopg/ ) 에서 다운로드 한 소스 파일을 사용하여 빌드 하려고 시도하면 다음 오류 메시지가 나타납니다!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

그러나 실제로있다! !!

이 오류로 당황합니다. 누구든지 도와 줄 수 있습니까?

그건 그렇고, 나는 sudo모든 명령입니다. 또한 RHEL 5.5에 있습니다.


8
이 같은 명령을 실행하면 sudo, $PATH변경됩니다. $ PATH를 루트로 다시 확인해 주시겠습니까?
휴고 타바레스

1
제 경우에는 달리고 ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_config모든 것이 정상입니다!
CK.Nguyen

감사합니다 @ CK.Nguyen 당신이 정말 나를 위해 일한 팁.
pratibha

답변:


763

pg_config에 있습니다 postgresql-devel( libpq-dev데비안 / 우분투, libpq-develCentos / Cygwin / Babun에 있습니다.)


66
libpq-dev우분투 lucid (10.04)에 설치 한 후 해결되었습니다 . 미리 감사드립니다.
pylover

22
pg_configpostgress.app의 위치는 /Applications/Postgres.app/Contents/Versions/<your version>/bin(Mac OS X)
Tim Daubenschütz

17
그것은이다 libpqxx-devel페도라에.
robsn

54
sudo apt-get install libpq-dev우분투에 나를 위해 일한
빌 Cheatham

48
알파인 리눅스에서 : apk add postgresql-dev
RJ

384

Mac OS X에서 homebrew package manager를 사용하여 해결했습니다.

brew install postgresql

29
우수한! 이렇게하면 문제가 해결되었지만 초보자는 명령을 실행 하려면 먼저 Homebrew 패키지 관리자 를 설치해야합니다 brew.
seane

pgadmin 설치 후 brew 설치를 했는데도 나를 위해 일했습니다.
Khanal

8
전체 데이터베이스를 설치하지 않습니까?
zmbq

3
나는 여분이 필요합니다brew link postgresql
vincentlcy

1
@seane의 의견에 추가하려면 이 연습 을 사용 하여 설치하십시오 homebrew.
Bruce Wayne

236

설치 했습니까 python-dev? 이미 설치 한 경우 설치도 시도하십시오libpq-dev

sudo apt-get install libpq-dev python-dev

기사 : virtualenv에서 psycopg2를 설치하는 방법


내 컴퓨터에서는 Postgresql 클라이언트 만 설치하므로 libpq-dev와 python-dev를 설치해야합니다.
bnPYSse

2
python-dev가 필요하다는 것은 의심의 여지가 있습니다.
juanitogan

감사합니다
Arun

4
python3-dev가 필요합니다. 그것없이 내가 얻을Python.h: No such file or directory
krubo

1
이 필요한 또 하나 개의 의존성이다apt-get install -y gcc
anum에 Sheraz

74

또한 OSX에서도. http://postgresapp.com/ 에서 Postgress.app를 설치 했지만 동일한 문제가있었습니다.

pg_config해당 앱의 내용을 발견 하고에 dir을 추가했습니다 $PATH.

에 있었다 /Applications/Postgres.app/Contents/Versions/latest/bin. 그래서 이것은 효과가 export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"있었습니다 : .


3
@GianlucaLodigiani 콘솔을 다시 시작하지 않으려는 경우에도이 작업을 수행 할 수 있습니다PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Bernardo Duarte

45

알파인에서 포함하는 라이브러리 pg_configpostgresql-dev입니다. 설치하려면 다음을 실행하십시오.

apk add postgresql-dev

38

이것은 CentOS에서 처음으로 설치 한 것입니다.

sudo yum install postgresql postgresql-devel python-devel

우분투에서는 동등한 apt-get 패키지를 사용하십시오.

sudo apt-get install postgresql postgresql-dev python-dev

이제 pip 설치와 함께 postgresql 바이너리 디렉토리의 경로를 포함하십시오. 이것은 Debain 또는 RHEL 기반 Linux에서 작동합니다.

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

올바른 경로를 포함하십시오. 그게 다야 :)


1
우분투 sudo apt-get install postgresql postgresql-dev python-dev에서는이며 이것이 나를 위해 일했습니다.
modulitos

2
2016 년 12 월 현재 Amazon Linux AMI에서도 작동합니다. 또한 gccpython3-devel이 설치되어 있는지 확인하십시오 .
villasv

감사합니다!!! Fedora 32 Workstation에서도 작동했습니다!
Marcelo Gazzola


34

우분투의 Postgres에서 사용되는 파이썬 요구 사항을 추가해야합니다. 운영:

sudo apt-get install libpq-dev python-dev

32

요약하자면, 나는 똑같은 문제에 직면했습니다. 많은 stackoverflow 게시물과 온라인 블로그를 읽은 후 저에게 효과적 인 최종 솔루션은 다음과 같습니다.

1) psycopg2를 설치하기 전에 PostgreSQL (개발 또는 안정적인 버전)을 설치해야합니다.

2) pg_config 파일 (이 파일은 보통 PostgreSQL 설치 폴더의 bin 폴더에 있습니다) psycopg2를 설치하기 전에 PATH를 명시 적으로 설정해야했습니다. 필자의 경우 PostgreSQL의 설치 경로는 다음과 같습니다.

/opt/local/lib/postgresql91/

pg_config 파일의 경로를 명시 적으로 설정하기 위해 터미널에 다음 명령을 입력했습니다.

PATH=$PATH:/opt/local/lib/postgresql91/bin/

이 명령은 psycopg2를 pip 설치하려고 할 때 이번에 pg_config에 대한 PATH를 자동으로 찾도록합니다.

또한 참조 할 수있는 내 블로그 에 추적 및 해당 솔루션에 대한 전체 오류를 게시했습니다 . Mac OS X 용이지만 pg_config PATH 문제는 일반적이며 Linux에도 적용됩니다.


6
OS X의 경우 경로는 다음과 같습니다PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
andilabs

@andi Yea, Postgres의 설치 경로는 다를 수 있지만 위에서 언급 한 psycopg2의 설치 방법은 동일합니다. 도움이 되었기를 바랍니다.
Ali Raza Bhayani

30

sudo apt-get install libpq-dev 우분투 15.4에서 나를 위해 일합니다.


최신 Ubuntu를 사용하는 경우 위에서 언급 한 설치 지침을 계속 사용하십시오. 참조 pg_config
palik

23

Linux에서 Mint sudo apt-get install libpq-dev는 나를 위해 일했습니다.


21

pip또는 conda다음을 사용 하여 모든 플랫폼에 사전 컴파일 된 바이너리를 설치할 수 있습니다 .

python -m pip install psycopg2-binary

또는

conda install psycopg2

있음을 알려드립니다 psycopg2 바이너리 pypi 페이지가 생산에 소스에서 구축하는 것이 좋습니다 :

이진 패키지는 개발 및 테스트를위한 실용적인 선택이지만 프로덕션 환경에서는 소스에서 빌드 된 패키지를 사용하는 것이 좋습니다.

소스에서 빌드 된 패키지를 사용하려면을 사용하십시오 python -m pip install psycopg2. 이 프로세스에는 몇 가지 종속성 ( documentation ) 이 필요합니다 (강조 광산).

  • AC 컴파일러 .
  • 파이썬 헤더 파일 . 이들은 일반적으로 python-dev 와 같은 패키지에 설치됩니다 . 오류와 같은 메시지 : Python.h : 해당 파일이나 디렉토리가 없음은 Python 헤더가 누락되었음을 나타냅니다.
  • libpq를 헤더 파일 . 이들은 일반적으로 libpq-dev 와 같은 패키지에 설치됩니다 . 오류가 발생하면 : libpq-fe.h : 해당 파일이나 디렉토리가 없습니다.
  • pg_config 프로그램 : 그것은 일반적으로 설치됩니다 libpq를-dev에 패키지하지만 때로는 그것이 PATH 디렉토리에 있지 않습니다. PATH에 설치하면 설치가 크게 간소화되므로 pg_config --version을 실행하십시오. 오류 또는 예기치 않은 버전 번호가 반환되면 올바른 libpq 버전과 함께 제공된 pg_config가 포함 된 디렉토리를 찾으십시오 (보통 / usr / lib / postgresql / XY / bin /)을 PATH에 추가하십시오 : $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH pg_config 만 있으면 psycopg2를 컴파일 할 수 있습니다.

우분투에서는 먼저 libpq-dev 라이브러리를 설치 한 다음 pip install 명령을 다시 실행해야했습니다.apt install libpq-dev
Benjamin

20

업데이트 /etc/yum.repos.d/CentOS-Base.repo, [base] 및 [updates] 섹션
ADD exclude = postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

20

OS X를 실행하는 사람들 에게이 솔루션은 저에게 효과적이었습니다.

1) Postgres.app를 설치하십시오 :

http://www.postgresql.org/download/macosx/

2) 그런 다음 터미널을 열고이 명령을 실행하여 {{version}}이 표시된 위치를 Postgres 버전 번호로 바꿉니다.

내보내기 PATH = $ PATH : /Applications/Postgres.app/Contents/Versions / {{version}} / bin

예 :

내보내기 PATH = $ PATH : /Applications/Postgres.app/Contents/Versions/9.4/bin


또는 최신 버전으로 심볼릭 링크sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Subin Sebastian

17

PATH에 추가하십시오.

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory
pylover

@pylover, Postgres bin 디렉토리의 올바른 경로를 사용해야합니다. 당신은 확신하는 /usr/pgsql-x.x/bin/올바른?
Marboni

모든 중요한 pg_파일이 있는 폴더를 추가하는 것만으로도 충분 합니다. postgres.app의 경우 Mac OS X에서이 경로는 /Applications/Postgres.app/Contents/Versions/9.3/bin입니다. 새 버전이 출시되면 버전을PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin 업데이트하십시오 * .
Tim Daubenschütz

이것은 OS X El Capitan에서 나를 위해 일했습니다.PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
David Hariri

16

Ali의 솔루션이 나를 위해 일했지만 bin 폴더 위치를 찾는 데 문제가있었습니다. Mac OS X에서 경로를 찾는 빠른 방법은 psql을 여는 것입니다 (맨 위 메뉴 막대에 빠른 링크가 있음). 그러면 별도의 터미널 창이 열리고 두 번째 줄에는 Postgres 설치 경로가 다음과 같이 나타납니다.

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

pg_config 파일은 해당 bin 폴더에 있습니다. 따라서 psycopg2를 설치하기 전에 pg_config 파일의 경로를 설정하십시오 :

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

또는 최신 버전 :

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

그런 다음 psycopg2를 설치하십시오.


1
최신 문서는 다음 경로를 사용합니다./Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

움직이는 것 같습니다. find /usr/local -name 'pg_config'
Praxeolitic

11

psycopg2를 설치하기 전에 pip를 업그레이드해야합니다. 이 명령을 사용하십시오

pip install --upgrade pip

대부분의 경우 더 자세한 답변이 도움이 될 수 있습니다.
bkausbk

11

제공된 모든 솔루션에도 불구 하고이 문제를 해결할 수없는 다음 불행한 영혼을 위해 여기에 남겨 두겠습니다. 간단히 사용sudo pip3 install psycopg2-binary


이것은 나를 위해 작동하지 않았습니다. 단지 brew install postgresql그것을 고정.
tsando

pip install psycopg2-binary나를 위해 해야 할 수도 있습니다 : pip-> python2, pip3-> python3. 그러나 당신이 그것을 작동시키는 한, 그것은 많은 해결책 중 하나였습니다!
DuDoff

9

Cent OS 7의 문제를 다음과 같이 해결했습니다.

export PATH=$PATH:/usr/pgsql-9.5/bin

PostgreSql 버전이 위의 올바른 버전과 일치하는지 확인하십시오.


9

Mac OS X 및 Postgres 앱 ( http://postgresapp.com/ )을 사용하는 경우 :

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

이 명령에서 Postgres 버전을 지정할 필요가 없습니다. 항상 최신을 가리 킵니다.

하고

pip install psycopg2

추신 : 변경 사항이 반영되지 않으면 터미널 / 명령 프롬프트를 다시 시작해야 할 수도 있습니다

출처




8

MacOS에서 가장 간단한 해결책은 Postgres 패키지에있는 올바른 바이너리를 심볼릭 링크하는 것입니다.

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

이것은 무해하며 모든 응용 프로그램은 필요한 경우 시스템 전체에서 사용할 수 있습니다.


나를 위해 일했지만, sudo 할 필요는 없었습니다. 감사합니다!
존 오텐 립스

실제로 나를 위해 작동합니다!
Hadnazzar


5

OS X 완성도 : MacPorts에서 PostgreSQL을 설치하면 pg_config가 /opt/local/lib/postgresql94/bin/pg_config .

MacPorts를 설치하면 이미 /opt/local/binPATH에 추가되었습니다 .

따라서 문제가 해결됩니다. $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

이제 문제없이 pip install psycopg2실행할 pg_config수 있습니다.


4

postgres 앱을zsh 설치 한 쉘을 사용하는 macOS Catalina 사용자 :

~/.zshrc파일을 열고 다음 줄을 추가 하십시오.

export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

그런 다음 모든 터미널을 닫았다가 다시 열면 문제가 해결됩니다.

터미널을 닫지 않으려면 source ~/.zshrc계속 작업 할 터미널을 입력하십시오 .


이것은 Macos와 zshshell 에서 나를 위해 일했습니다 !
Aditya Rao

4

Mac 사용자의 경우 경로 변수를 확장하여 PostgreSQL을 다음과 같이 포함하십시오 export PATH=$PATH:/Library/PostgreSQL/12/bin.


3

이것이 내가 psycopg2를 설치하는 방법입니다

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

2

나는 당신이 내가했던 것과 같은 "문제"를 경험했다고 확신하므로 매우 쉬운 해결책을 제공 할 것입니다 ...

귀하의 경우 $ PATH (또는 명령 매개 변수)에 추가 해야하는 실제 경로는 다음과 같습니다.

/usr/pgsql-9.1/bin/pg_config

아니

/usr/pgsql-9.1/bin

예를 들어 python setup.py 스크립트를 나중에 실행하면 다음과 같이 실행됩니다.

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

아마도 너무 늦었지만 여전히 가장 쉬운 해결책입니다.

나중에 편집 :

추가 테스트에서 처음에 pg_config 경로를 양식에 추가하면

/usr/pgsql-9.1/bin

(..... / bin 뒤에 / pg_config없이) pip install 명령을 실행하면 작동합니다.

그러나 python setup.py를 실행하라는 표시를 따르기로 결정한 경우 ..... / bin 뒤에 / pg_config를 사용하여 경로를 지정해야합니다.

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

pgsql / bin 디렉토리를 공정한 비트를 사용한 PATH에 추가하는 대안은 심볼릭 링크 /usr/pgsql-9.6/bin/pg_config(또는 시스템에서 호출 된 모든 것을)하여 /usr/bin/pg_config이미 PATH에서 사용할 수있는 방법입니다.
랄프 볼튼

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.