サーバー側の拡張を構築するには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 2015年

回答:


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、2015

18
ありがとうございました!sudo apt-get install libpq-dev私のために働いた!
Julian Guterman、2016年

1
@ManishShrivastava、ようこそ
メガバイト

1
sudo apt-get install python3-psycopg2python3への追加に使用
Ramesh Verma

67

端末からrootとしてこのコマンドを実行するだけで問題が解決し、

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-binaryパッケージは、初心者がPythonと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.