Python에서 "pip"로 psycopg2를 설치하는 방법은 무엇입니까?


506

나는 사용하고있다 virtualenv 하고 "psycopg2"를 설치해야합니다.

나는 다음을 수행했다.

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

그리고 다음과 같은 메시지가 있습니다.

Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2
-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
  Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded
  Running setup.py egg_info for package from http://pypi.python.org/packages/sou
rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
    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'.
    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info\psycopg2.egg-info

writing pip-egg-info\psycopg2.egg-info\PKG-INFO

writing top-level names to pip-egg-info\psycopg2.egg-info\top_level.txt

writing dependency_links to pip-egg-info\psycopg2.egg-info\dependency_links.txt

writing manifest file 'pip-egg-info\psycopg2.egg-info\SOURCES.txt'

warning: manifest_maker: standard file '-c' not found

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
Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p
ip.log

내 질문에, 나는 psycopg2를 작동시키기 위해 이것을해야합니까?

python setup.py build_ext --pg-config /path/to/pg_config build ...

3
python setup.py build_ext --pg-config / path / to / pg_config build ...을 시도했을 때 작동합니까?
lajarre

2
파이썬 3.4 파이썬 3.5의 경우, 해당 혼란 스럽다의 dev에 패키지와 같은 설치해야 sudo apt install libpq-dev python3.4-dev또는sudo apt install libpq-dev python3.5-dev
Avinash 라즈

답변:


809

참고 : 얼마 전부터 PyPI에는 Windows 용 이진 휠이 있으므로 Windows 사용자에게는 더 이상 문제가되지 않습니다. 다음은 Linux, Mac 사용자를위한 솔루션입니다. 많은 사람들이 웹 검색을 통해이 게시물을 찾습니다.


옵션 1

psycopg2-binary대신 PyPI 패키지를 설치하십시오 . Linux 및 Mac OS 용 Python 휠이 있습니다.

pip install psycopg2-binary

옵션 2

psycopg2소스 에서 패키지 를 빌드하기위한 전제 조건을 설치하십시오 .

데비안 / 우분투

파이썬 3

sudo apt install libpq-dev python3-dev

설치해야 할 수도 있습니다 python3.8-dev예를 들어 Python 3.8과 같이 하거나 유사 .

파이썬 2 1

sudo apt install libpq-dev python-dev

충분하지 않으면 시도해보십시오

sudo apt install build-essential

또는

sudo apt install postgresql-server-dev-all

psycopg2를 다시 설치하기 전에.

CentOS 6

참조 Banjer의 답변을


1 정말요? 2020 년


7
11.04 : 다른 오류, 같은 해결책. 개발 버전 숭배!
I159

5
@ I159- *-dev패키지에는 라이브러리에서 제공하는 기능을 사용하는 소스에서 응용 프로그램을 컴파일하는 데 필요한 파일이 포함되어 있습니다 ( 및 라이브러리 psycopg2사용 등). libpqpython
joar

21
저는 Ubuntu 12.04 LTS를 사용하고 있습니다.sudo apt-get install postgresql-server-dev-all
caleb

4
누군가 pg_config를 포함하는 디렉토리가 PATH에 왜 (또는 --pg-config를 사용하는지) 설명 할 수 있습니까?
lajarre

5
Dockerhub의 python 3 Celery 컨테이너에 psycopg2를 설치하는 데 문제가 있기 때문에 여기에 build-essential을 설치해야합니다.sudo apt-get install -y build-essential
derrend

118

CentOS에서는 postgres dev 패키지가 필요합니다 :

sudo yum install python-devel postgresql-devel

그것은 적어도 CentOS 6의 솔루션이었습니다.


1
이것은 단지 CentOS가 아닙니다. psycopg는 고유 한 의존성을 가지고 있으므로 소스 (pip가하는 것)에서 빌드하려면 PostgreSQL 개발 라이브러리가 있어야합니다. (C 헤더, ​​아마도? 네이티브 코드를 컴파일하는 것에 대해 잘 모르겠습니다.)
jpmc26 2016 년

3
이것이 CentOS 6의 문제를 해결한다고 동의합니다. $ PATH에 /usr/pgsql-9.3/bin을 추가해야한다고 덧붙이고 싶습니다. 다음은 그 방법을 보여주는 게시물입니다. serverfault.com/questions/102932/…
라이더 브룩스

CentOS 7 및 Python 3.4의 경우 "python34-devel"을 설치해야했습니다. 관련 질문에 대한 나의 답변 : stackoverflow.com/a/42370489/26219
Mark Edington

RHEL 기반의 64 비트 아마존 리눅스 / 2.5.1로, AWS EC2에 근무
벤 휠러

Fedora에서 Python3을 사용하려면 sudo yum install python36-devel(36을 Python 3 버전으로 대체하십시오).
LoMaPh

85

Postgres.app 버전 9.3.2.0 RC2가 설치된 Mac Mavericks에서 Postgres를 설치 한 후 다음 코드를 사용해야했습니다.

sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2


sudo PATH = $ PATH : /Applications/Postgres93.app/Contents/MacOS/bin pip 설치 psycopg2 [2014 년 4 월 5 일 기준]
user798719

2
당신이 VIRTUALENV 사용하는 경우는 필요 'sudo는'매우 활성 당신의 VIRTUALENV 및 실행 'PATH = $ PATH : /Applications/Postgres.app/Contents/Versions/9.3/bin이 핍 psycopg2 설치'해달라고
elin3t

3
필자의 사례 OS X Ver 10.9.4 : sudo PATH = $ PATH : /Library/PostgreSQL/9.2/bin pip install psycopg2
emecas

3
예, 이것도 저에게 효과적이었습니다. PostgreSQL을 설치 한 후을 수행하여 경로를 설정해야했습니다 PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2.
iamfrancisyo

4
최신 버전을 사용하여 PATH는 $ PATH를 = : /Applications/Postgres.app/Contents/Versions/latest/bin 핍이 psycopg2 설치
디에고 사르 미 엔 토

80

당신이 맥에 있다면 당신은 homebrew를 사용할 수 있습니다

brew install postgresql

다른 모든 옵션은 다음과 같습니다. http://www.postgresql.org/download/macosx/

행운을 빕니다


2
nichochar의 답변과 attomos의 답변 (postgresql 설치 및 경로 수정)이 함께 문제를 해결했습니다. 경로를 편집하는 가장 쉬운 방법은 터미널에서 "sudo nano / etc / path"를 실행하는 것입니다.
tbradley22

2
감사합니다. 내가 이것을 발견하기 전에 나는 미쳐 버리려고했다!
레오 C 한

1
나에게도 도움이되었고, 내 길로 원숭이를 필요로 할 필요가 없습니다 (일반적으로 여기에서는 sudo를 권장하지 않습니다-사용자 공간 에서이 작업을 수행 할 수 있어야합니다).
duozmo

이것은 virtualenvOP 요청과 같은 postgresql을 설치하지 않습니다 .
Jorge Leitao

OP가 virtualenv에서 postgres를 원한다고 생각하지 않습니다. 그는 virtualenv를 사용하고 있다고 말했다. 그는 postgresql이 단순히 파이썬 라이브러리보다 더 큰 서비스라고 오해했다고 생각합니다.
nichochar

61

최근에 Windows 시스템에서 psycopg2를 구성했습니다. 가장 쉬운 설치는 Windows 실행 파일 바이너리를 사용하는 것입니다. http://stickpeople.com/projects/python/win-psycopg/ 에서 찾을 수 있습니다 .

가상 환경에 원시 바이너리를 설치하려면 easy_install을 사용하십시오.

C:\virtualenv\Scripts\> activate.bat
(virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe

3
답장을 보내 주셔서 감사합니다. 그러나 가상 환경에 설치해야합니다. 안부
안드레

4
트릭 (의례, Ned Batchelder)은 바이너리
Praveen Gollakota

13
Windows에서 "pip install psycopg2"를 사용하는 방법이 실제로 없습니까? psycopg2에 대한 패치가 필요하더라도 그만한 가치가 있습니다.
slacy

1
... 나는 포스트 그레스를 설치하고 오류가 도망 갔어요 - 포스트 그레스가 내 컴퓨터에 설치되지 않은 경우이 오류가있어
샘 요셉에게

2
stickpeople 링크는 버전을 설치 픽처 인 픽처 가상 ENV 포인트에 대해 설명 github.com/nwcell/psycopg2-windows
seanv507

27

파이썬 3의 경우 sudo apt-get install libpq-dev python3-dev데비안에서 사용해야합니다 .


27

이 RHEL, CentOS는에 (나를 위해 일한 것입니다 :

sudo yum install postgresql postgresql-devel python-devel

그리고 이제 pip install과 함께 postgresql 바이너리 디렉토리 경로를 포함하십시오.

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

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

업데이트 : 파이썬 3의 경우 python3-devel대신에 설치하십시오python-devel


PATH 환경 변수를 업데이트 할 필요가 없었습니다.
grim

당신은 당신의 터미널 세션을 다시로드하면 필요가 없습니다.
radtek

Excelent 정말 감사합니다.
Jorge Vidinha

Python 3을 사용하는 경우 번호가 매겨진 Python devel 패키지를 설치해야합니다. 참조 : stackoverflow.com/a/42370489/26219
마크에 딩턴

21

Mac OS를 사용하는 경우 소스에서 PostgreSQL을 설치해야합니다. 설치가 완료되면 다음을 사용하여이 경로를 추가해야합니다.

export PATH=/local/pgsql/bin:$PATH

또는이 같은 경로를 추가 할 수 있습니다 :

export PATH=.../:usr/local/pgsql/bin

귀하의 .profile파일 또는.zshrc 파일.

운영 체제에 따라 다를 수 있습니다.

당신은에서 설치 프로세스를 따를 수 http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/을


1
왜 Homebrew 대신 소스에서 왔습니까?
duozmo

@ duozmo 2012 년에 답변 받았고 그 당시 Homebrew로 설치하려고했지만 실패했습니다. 이제 Homebrew를 사용하여 PostgreSQL을 아무런 문제없이 설치했습니다.
attomos

17

지금까지의 답변은 마술 요리법과 너무 비슷합니다. 수신 된 오류는 pip가 PostgreSQL 쿼리 라이브러리에서 필요한 부분을 찾을 수 없음을 나타냅니다. 아마도 OS의 비표준 위치에 설치했기 때문에 --pg-config 옵션을 사용하라는 메시지가 표시되기 때문일 수 있습니다.

그러나 더 일반적인 이유는 libpq가 전혀 설치되어 있지 않기 때문입니다. 이는 서버 자체가 아닌 클라이언트 앱만 실행하기 때문에 PostgreSQL 서버가 설치되지 않은 시스템에서 일반적으로 발생합니다. 각 OS / 디스트로는 다릅니다 (예 : Debian / Ubuntu에서 libpq-dev를 설치해야 함). 이를 통해 PostgreSQL 쿼리 라이브러리에 대해 코드를 컴파일하고 링크 할 수 있습니다.

대부분의 답변은 Python dev 라이브러리 설치를 제안합니다. 조심해. 배포판에서 설치 한 기본 Python 만 사용하는 경우 작동하지만 최신 버전 인 경우 문제가 발생할 수 있습니다. 이 머신에서 파이썬을 빌드했다면 파이썬과 인터페이스하기 위해 C / C ++ 라이브러리를 컴파일하는 데 필요한 dev 라이브러리가 이미 있습니다. 올바른 pip 버전을 사용하는 한 파이썬 바이너리와 동일한 bin 폴더에 설치된 버전은 모두 설정됩니다. 이전 버전을 설치할 필요가 없습니다.


1
그리고 Os x에 대해? 내 말은 유닉스를 기반으로하지만 다를 수 있다고 생각합니다.
Lara

13

의 위에 Debian/Ubuntu :

먼저 psycopg2패키지의 종속성을 설치하고 빌드하십시오 .

# apt-get build-dep python-psycopg2

그런 다음 가상 환경에서 psycopg2모듈을 컴파일하고 설치하십시오 .

(env)$ pip install psycopg2

6

Windows에서 기본 파이썬 설치로 먼저 설치하기 전에이 작업을 수행했습니다.

그런 다음 설치된 psycopg2를 virtualenv 설치에 수동으로 복사합니다.

예쁘지는 않지만 작동합니다.


2
좀 더 정교하게 부탁드립니다. psycopg2는 처음에 어디에서 구합니까?
Saher Ahwal


나는 온라인으로 설명 된 며칠과 다른 모든 옵션을 마친 후에도 이것을했습니다. pip in과 함께 설치되지 못하게하는 것에 대해서는 여전히 멍청 venv합니다. 가상 환경 외부에 설치할 수있었습니다. 문제 없습니다. 그런 다음 문자 그대로 내 파이썬 패키지 라이브러리 디렉토리에서 해당 파일을 복사하여에 동일한 폴더 안에 붙여 넣었습니다 venv. 필자의 직감은 Python 버전이 Anaconda 배포판이기 때문에 가정 / 사용중인 경로에 문제가 있다는 것입니다.
kuanb

5

필요한 패키지를 설치하는 것 외에도 PostgreSQL bin 디렉토리를 PATH에 수동으로 추가해야했습니다.
$vi ~/.bash_profile
추가 PATH=/usr/pgsql-9.2/bin:$PATH하기 전에 export PATH.
$source ~/.bash_profile
$pip install psycopg2


이것이 기본 경로로 끝나지 않는 이유는 무엇입니까?
Bret

1
이 문제를 해결하는 방법과 같은 오류가 발생했습니다. "/ usr / bin / python -c"설정 도구 가져 오기, tokenize; __ file __ = '/ private / tmp / pip-build-AUbwwG / psycopg2 / setup.py'; exec (compile (getattr (tokenize, 'open', open) ) ( file ) .read (). replace ( '\ r \ n', '\ n'), file , 'exec')) "install --record /tmp/pip-44Va05-record/install-record.txt --single-version-externally-managed --compile "이 / private / tmp / pip-build-AUbwwG / psycopg2의 오류 코드 1과 함께 실패했습니다.
vijay

3

Windows XP에서 postgres가 설치되어 있지 않으면이 오류가 발생합니다 ...


맞습니까? 내 Windows 컴퓨터에 postgres를 설치했는데 여전히 얻습니다. ?
Saher Ahwal

2
왜 postgres를 갖기 위해 사전 요구 사항으로 사이트에 있지 않습니까?
Saher Ahwal


3

psycopg2를 설치하기 전에 python-dev 패키지를 설치해야합니다.

Linux (그리고 다른 시스템이지만 경험으로는 말할 수는 없지만)에서 작업하는 경우 dev 패키지를 설치할 때 실행중인 파이썬 버전에 대해 매우 정확해야합니다.

예를 들어 내가 명령을 사용했을 때 :

sudo apt-get install python3-dev

시도 할 때 여전히 동일한 오류가 발생했습니다.

pip install psycopg2

파이썬 3.7을 사용하고 있으므로 명령을 사용해야했습니다.

sudo apt-get install python3.7-dev

일단이 작업을 수행하면 더 이상 문제가 발생하지 않았습니다. 분명히 파이썬 버전 3.5 인 경우 7을 5로 변경하십시오.


2
이것은 대답이어야하며 sudo apt-get install python-x.x-dev문제를 해결했습니다.
Arbazz Hussain

2

나는 이것을 며칠 동안 싸우고 있었고 마침내 "pip install psycopg2"명령을 Windows의 virtualenv에서 실행하는 방법 (Cygwin 실행)을 알아 냈습니다.

"pg_config 실행 파일을 찾을 수 없습니다." 오류가 발생했지만 이미 postgres를 다운로드하여 Windows에 설치했습니다. Cygwin에도 설치되었습니다. Cygwin에서 "that pg_config"를 실행하면 "/ usr / bin / pg_config"가 제공되고 "pg_config"를 실행하면 정상적인 출력이 발생하지만 Cygwin과 함께 설치된 버전은 다음과 같습니다.

버전 = PostgreSQL 8.2.11

현재 psycopg2 버전에서는 작동하지 않으며 9.1 이상이 필요합니다. Windows 경로에 "c : \ Program Files \ PostgreSQL \ 9.2 \ bin"을 추가하면 Cygwin pip 설치 관리자가 올바른 버전의 PostgreSQL을 찾을 수 있었고 pip를 사용하여 모듈을 성공적으로 설치할 수있었습니다. (어쨌든 네이티브 버전이 훨씬 빨리 실행되므로 PostgreSQL Cygwin 버전을 사용하는 것이 좋습니다.)


2

대한 파이썬 3.x를 : 페도라 24 일

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

가상 환경을 활성화 :

pip install psycopg2

2

Psycopg2는 Postgres 라이브러리에 따라 다릅니다. 우분투에서 다음을 사용할 수 있습니다.

apt-get install libpq-dev

그때:

pip install psycopg2

pip 패키지와 apt-get 패키지를 혼합하는 것은 좋지 않습니다.
wswld

1

Windows 사용자가 아래 링크에서 psycopg2를 설치해야하는 경우, 설치 한 Python 설치에 설치하십시오. "psycopg2"라는 폴더가 파이썬 설치의 site-packages 폴더에 위치합니다.

그런 다음 해당 폴더를 virtualenv의 site-packages 디렉토리에 복사하면 아무런 문제가 없습니다.

다음은 psycopg2를 설치하기위한 실행 파일을 찾을 수있는 링크입니다.

http://www.lfd.uci.edu/~gohlke/pythonlibs/


나는 이것을 시도하고 psycopg2-2.6-cp34-none-win_amd64.whl 은이 플랫폼에서 지원되는 바퀴가 아닙니다.
jayeshkv

1

OpenSUSE 13.2에서는 다음과 같이 수정되었습니다.

sudo zypper in postgresql-devel 

1

Windows 컴퓨터에 다음 명령을 통해 Python 2.7과 함께 Anaconda / Spyder를 사용하여 설치할 수 있습니다.

 !pip install psycopg2

그런 다음 데이터베이스에 대한 연결을 설정하십시오.

 import psycopg2
 conn = psycopg2.connect(dbname='dbname',host='host_name',port='port_number', user='user_name', password='password')

psql에 들어가서 암호를 추측하면 psql -l호스트 localhost, 기본 데이터베이스 포트 5432, 사용자가 나열된 데이터베이스 로이 작업을 수행했습니다 \du.
Harry Moreno

1

에서 아치 베이스 분포 :

sudo pacman -S python-psycopg2
pip2 install psycopg2  # Use pip or pip3 to python3


0

우분투에서는 postgres dev 패키지가 필요했습니다.

sudo apt-get install postgresql-server-dev-all

* 가상 환경에서 테스트


0

OSX 10.11.6 (El Capitan)에서

brew install postgresql
PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2

OSX 10.12.3 (Sierra) :brew install postgresql PATH=$PATH:/usr/local/Cellar/postgresql/9.6.2/bin/ pip install psycopg2
ishandutta2007

OS X 10.14에서 이것은 매우 도전적인 것으로 밝혀졌습니다. 자세한 솔루션은 여기를 참조하십시오 : stackoverflow.com/a/57014480/2162844
Bisonbleu

0

macports가있는 OSX에서 :

sudo port install postgresql96
export PATH=/opt/local/lib/postgresql96/bin:$PATH

0

나는이 문제를 겪고 있었고, 주된 이유는 2 개의 동일한 버전이 설치되어 있기 때문입니다. 하나는 postgres.app이고 다른 하나는 HomeBrew입니다.

APP 만 유지하기로 선택한 경우 :

brew unlink postgresql
pip3 install psycopg2

0

macOS Mojave에서 Command Line Tools 10.3으로 최신 업데이트를 확인하십시오-저에게 효과적이었습니다-Software Update로 업데이트하면 Mojave의 Command Line Tools 이전 버전이 작동하지 않습니다.


-1

이것을 시도하십시오 Gentoo:

emerge dev-libs/libpqxx

-2

Windows의 경우는 어떻게 작동
이 명령을 실행, 가상 환경에서 플라스크를 통해 핍 설치 한 후 명령 프롬프트에

>pip install psycopg2

이것을 확인 하십시오

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