서버 측 확장을 빌드하려면 postgresql-server-dev-XY를 설치하고 클라이언트 측 애플리케이션을 빌드하려면 libpq-dev를 설치해야합니다.


243

virtualenv를 사용하여 Django 프로젝트에서 작업하고 로컬 postgres 데이터베이스에 연결합니다. 프로젝트를 실행하면

ImportError: No module named psycopg2.extensions

그런 다음이 명령을 사용하여 설치

pip install psycopg2

그런 다음 설치 중에 다음 오류가 발생합니다.

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2

    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

    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: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

해당 패키지를 설치 했습니까? 설치되어 있지 않으면 설치하면 문제가 해결됩니다. postgresql-server-X.Y개발 파일 (위에서 언급 한 패키지에 있음)이 아니라 서버 바이너리, 라이브러리 및 데이터 파일 만 설치하기 때문에 단독으로 설치해 도 도움이되지 않습니다.
Abrixas2

답변:


490

다음 명령을 사용하면 오류가 해결됩니다.

sudo apt-get install postgresql

다음 발사 :

sudo apt-get install python-psycopg2

그리고 마침내:

sudo apt-get install libpq-dev

36
방금 클라이언트 라이브러리가 필요했습니다. "sudo apt-get install libpq-dev"가 나를 위해 해결했습니다. 감사합니다
Priyeshj

6
sudo apt-get install python-dev마지막으로 작동 하려면 또한 설치해야한다는 것을 알았습니다
ScottMcC

18
감사합니다! sudo apt-get install libpq-dev나를 위해 일했다!
Julian Guterman

1
@ManishShrivastava, 환영
MegaBytes

1
사용 sudo apt-get install python3-psycopg2python3에 추가
라 메쉬 베르에게

67

터미널에서 루트 로이 명령을 실행하면 문제가 해결됩니다.

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

또는

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5
고마워, libpq-dev그리고 python-dev필요한 마법을했다
avtomaton

2
postgis? woot
techkuz

때때로 sudo apt update를 실행하면 이러한 유형의 오류가 해결됩니다. 두 솔루션을 모두 시도했지만 실패했습니다. sudo apt udpate를 실행하면 해결되었습니다.
Aleem

46

그냥 libpq-dev를 설치하십시오

$ sudo apt-get install libpq-dev

30

나를 위해이 간단한 명령으로 문제를 해결했습니다.

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

그런 다음 할 수 있습니다 :

 pip install psycopg2

14

Python 3의 경우 다음을 수행했습니다.

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

그리고 나는 할 수 있었다 :

pip3 install psycopg2

13

그들은 psycopg2의 포장을 변경했습니다. 이진 버전을 설치하면이 문제가 해결되었습니다. 바이너리를 직접 컴파일하려는 경우 위의 답변은 여전히 ​​유효합니다.

http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8을 참조하십시오 .

이진 패키지는 더 이상 기본적으로 설치되지 않습니다. 'psycopg2-binary'패키지는 명시 적으로 사용해야합니다.

그리고 http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

따라서 자신의 바이너리를 컴파일 할 필요가 없으면 다음을 사용하십시오.

pip install psycopg2-binary

1
당신은 선생님이 내 인생 저장
하룬 Hajem

3
psycopg2-binary버그가 발생할 수 있으므로 프로덕션 환경에서 사용해서는 안됩니다.
suhailvs

1
psycopg2-binary생산에 사용해서는 안 : initd.org/psycopg/docs/install.html#binary-install-from-pypi (복사 된 텍스트를 다음 psycopg2 바이너리 패키지가 필요없이 파이썬과 PostgreSQL과 재생을 시작하는 초보자를위한 것입니다 psycopg2에 따라 게시 패키지의 관리자 인 경우 'psycopg2-binary'를 모듈 종속성으로 사용해서는 안됩니다. 프로덕션 용도의 경우 소스 배포를 사용하는 것이 좋습니다.)
Joseph Victor Zammit

10

postgresql-server-dev-XY를 설정해야합니다. 여기서 XY는 서버 버전이며 서버 측 개발을 위해 libpq-dev 및 기타 서버 변수를 모듈에 설치합니다. 내 경우에는

apt-get install postgresql-server-dev-9.5

패키지 목록 읽기 ... 완료 건물 종속성 트리 상태 정보 읽기 ... 완료 다음 패키지가 자동으로 설치되어 더 이상 필요하지 않습니다. libmysqlclient18 mysql-common 'apt-get autoremove'를 사용하여 제거하십시오. 다음과 같은 추가 패키지가 설치됩니다 :
libpq-dev 권장 패키지 : postgresql-doc-10 다음과 같은 새로운 패키지가 설치됩니다 : libpq-dev postgresql-server-dev-9.5

당신의 경우

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

4

Ubuntu 18.04에서 가상 환경을 사용하고 있었고 클라이언트로만 설치하고 싶었으므로 다음 작업 만 수행하면됩니다.

sudo apt install libpq-dev
pip install psycopg2

그리고 문제없이 설치되었습니다. 물론 다른 답변이 말한 것처럼 이진 파일을 사용할 수 있지만 requirements.txt 파일에 명시되어 있으므로이 솔루션을 선호합니다.

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