web-dev-qa-db-ja.com

サーバーサイドエクステンションをビルドするにはpostgresql-server-dev-X.Yを、クライアントサイドアプリケーションをビルドするにはlibpq-devをインストールする必要があります。

私は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
159
Muhammad Taqi

以下のコマンドを使用してください。これでエラーが解決します。

Sudo apt-get install postgresql

それから発射する:

Sudo apt-get install python-psycopg2

そして最後:

Sudo apt-get install libpq-dev
363
MegaBytes

このコマンドをターミナルから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
48
Muhammad Taqi

私にとって、この簡単なコマンドは問題を解決しました:

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

それから私はすることができます:

 pip install psycopg2
21
ruhanbidart

Postgresql-server-dev-X.Yを設定する必要があります。ここで、X.Yです。あなたのサーバーのバージョン、そしてそれはサーバーサイド開発のためのモジュールでlibpq-devと他のサーバー変数をインストールします。私の場合は

apt-get install postgresql-server-dev-9.5

パッケージリストの読み込み中...完了依存関係ツリーの構築状態情報の読み込み中...完了次のパッケージは自動的にインストールされ、不要になりました。次の追加パッケージがインストールされます。
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
9
Max Sherbakov

Python 3では、私はしました:

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

それから私はすることができました:

pip3 install psycopg2
8
Garrett

彼らは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
8
robkorv

Libpq-devをインストールするだけです

$ Sudo apt-get install libpq-dev
3
Ivan

私はUbuntu 18.04で仮想環境を使用していました、そして私はそれをクライアントとしてインストールしたいだけだったので、私はしなければならなかっただけでした:

Sudo apt install libpq-dev
pip install psycopg2

そして問題なくインストールされました。もちろん、あなたは他の答えが言ったようにあなたがバイナリを使うことができます、しかし、それがrequirements.txtファイルで述べられたので、私はこの解決策を好みました。

1
Checo R