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 2012年

2
python 3.4または3.5のpythonのために、あなたが対応するverionのdevパッケージをインストールする必要がありますようにsudo apt install libpq-dev python3.4-devsudo apt install libpq-dev python3.5-dev
のAvinashラジ

回答:


810

:しばらく前から、PyPIにはWindows用のバイナリホイールがあり、Windowsユーザーにとってこれは問題ではなくなりました。Linux、Macユーザー向けのソリューションを以下に示します。それらの多くはWeb検索でこの投稿を見つけているためです。


オプション1

psycopg2-binary代わりにPyPIパッケージをインストールしてください。LinuxとMac OS用のPythonホイールがあります。

pip install psycopg2-binary

オプション2

psycopg2ソースからパッケージをビルドするための前提条件をインストールします。

Debian / Ubuntu

Python 3

sudo apt install libpq-dev python3-dev

python3.8-devたとえば、Python 3.8の場合は、同様のものをインストールする必要があります。

Python 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 2011

5
@ I159- *-devパッケージには、ライブラリによって提供される関数を使用するソースからアプリケーションをコンパイルするために必要なファイルが含まれます(特におよびライブラリをpsycopg2使用します)。libpqpython
joar

21
私はUbuntu 12.04 LTSを使用しています。また、必要でしたsudo apt-get install postgresql-server-dev-all
12:19の

4
誰かがPATHへのpg_configを含むディレクトリだけではない理由を説明してもらえますか(または--pg-configを使用)?
lajarre

5
あなたはまたしてビルド不可欠でインストールする必要がありますDockerhubからのpython 3セロリ容器にpsycopg2をインストールするトラブルを抱えているので、あなたはここにいる場合sudo apt-get install -y build-essential
derrend

118

CentOSでは、postgres開発パッケージが必要です。

sudo yum install python-devel postgresql-devel

それは少なくともCentOS 6でのソリューションでした。


1
これはCentOSだけではないと思います。psycopgにはネイティブの依存関係があるため、ソースからビルドするには(pipが行うことです)、PostgreSQL開発ライブラリがそこにある必要があります。(Cヘッダーでしょうか?ネイティブコードのコンパイルについてはあまり知りません。)
jpmc26

3
これでCentOS 6の問題が解決することに同意します。/usr/pgsql-9.3/binを$ PATHに追加する必要があったことを追加したいと思います。これがその方法の例を示す投稿です。serverfault.com/questions/102932/…–
Ryder Brooks

CentOS 7とPython 3.4の場合、「python34-devel」をインストールする必要がありました。関連する質問に対する私の答え:stackoverflow.com/a/42370489/26219
Mark Edington

AWS EC2で作業し、RHELベースの64ビットAmazon Linux / 2.5.1
Ben Wheeler

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 install psycopg2 [2014年4月5日現在]
user798719

2
virtualenvを使用している場合は 'sudo'は必要ないので、virtualenvをアクティブにして 'PATH = $ PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install 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 2015年

4
最新バージョンを使用:PATH = $ PATH:/Applications/Postgres.app/Contents/Versions/latest/bin pip install psycopg2
Diego Sarmiento

80

Macを使用している場合は、自作を使用できます

brew install postgresql

そして、他のすべてのオプションはここにあります:http//www.postgresql.org/download/macosx/

幸運を


2
nichocharの回答とattomosの回答(postgresqlのインストールとパスの変更)を組み合わせて、問題を解決しました。パスを編集する最も簡単な方法は、ターミナルから「sudo nano / etc / path」を実行することです。
tbradley22 14

2
これありがとう。これを発見する前に、私は狂っていました!
Leo C Han

1
私のためにも働いた、私のパスでサルする必要はありません(そして、一般的に、私はここでsudoをお勧めしません-あなたはユーザー空間でこれを行うことができるはずです)。
duozmo 2015

これはvirtualenv、OPが要求したような方法でpostgresqlをインストールしません。
ホルヘレイタオ2017

OPがvirtualenvでpostgresを必要としていたとは思いません。彼はvirtualenvを使用していると述べた。彼は、postgresqlが単なるpythonライブラリよりも大きなサービスであることを誤解していると思います。
nichochar 2017

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)は、過去に私がバイナリからvirtualenvにインストールするのに役立ちました
Praveen Gollakota

13
「pip install psycopg2」をWindowsで動作させる方法は本当にありませんか?psycopg2へのパッチが必要な場合でも、それだけの価値があります。
滑らかな

1
私のマシンにpostgresがインストールされていないときにこのエラーが発生しました-postgresをインストールしてエラーが解消しました...
Sam Joseph

2
stickpeopleリンクは、仮想環境についても説明し、pipインストールバージョンgithub.com/nwcell/psycopg2-windows
seanv507

27

Python 3の場合はsudo apt-get install libpq-dev python3-dev、Debianで使用する必要があります。


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

必ず正しいパスを含めてください。それで全部です :)

更新:Python 3のpython3-devel代わりにインストールしてくださいpython-devel


PATH環境変数を更新する必要がないことに注意してください。
厳しい2015

ターミナルセッションをリロードする必要はありません。
radtek、2015

エクセレントありがとうございます。
ホルヘヴィディニャ2017年

Python 3を使用している場合は、番号付きのPython開発パッケージをインストールする必要があります。参照:stackoverflow.com/a/42370489/26219
Mark Edington

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
なぜ自作ではなくソースから?
duozmo 2015

@duozmoそれは2012年に回答され、その時にHomebrewでインストールしようとしたと思いますが、失敗しました。これで、Homebrewを使用して問題なくPostgreSQLをインストールできました。
attomos 2015

17

これまでの答えは、魔法のレシピに似ています。受け取ったエラーは、pipがPostgreSQLクエリライブラリの必要な部分を見つけられないことを示しています。これはおそらく、OSの標準以外の場所にインストールされているためであり、メッセージが--pg-configオプションの使用を示唆しています。

しかし、より一般的な理由は、libpqがまったくインストールされていないことです。サーバー自体ではなくクライアントアプリのみを実行したいため、これはPostgreSQLサーバーがインストールされていないマシンで一般的に発生します。各OS /ディストリビューションは異なります。たとえば、Debian / Ubuntuではlibpq-devをインストールする必要があります。これにより、PostgreSQLクエリライブラリに対してコードをコンパイルおよびリンクできます。

ほとんどの回答は、Python開発ライブラリのインストールも推奨しています。注意してください。ディストリビューションによってインストールされたデフォルトのPythonのみを使用している場合は機能しますが、新しいバージョンを使用している場合は、問題が発生する可能性があります。このマシンでPythonをビルドした場合は、PythonとインターフェースするためにC / C ++ライブラリをコンパイルするために必要なdevライブラリがすでにあります。正しいpipバージョン(pythonバイナリと同じbinフォルダーにインストールされているもの)を使用している限り、準備は完了です。古いバージョンをインストールする必要はありません。


1
そして、Os xについて?つまり、これはUnixに基づいていますが、異なる場合があると思います。
Lara、

13

オン Debian/Ubuntu

まず、psycopg2パッケージの依存関係をインストールしてビルドします。

# apt-get build-dep python-psycopg2

次に、仮想環境で、psycopg2モジュールをコンパイルしてインストールします。

(env)$ pip install psycopg2

6

私はこれを以前に行いました。Windowsでは、ベースのPythonインストールに最初にインストールします。

次に、インストールしたpsycopg2をvirtualenvインストールに手動でコピーします。

きれいではありませんが、動作します。


2
詳しく説明してもらえますか?そもそもpsycopg2はどこから入手しますか?
Saher Ahwal


私もこれをやりました、オンラインで説明されている数日と他のすべてのオプションを使い果たしました。私はそれがピップインでインストールされるのを妨げていたものについてまだ驚いていvenvます。仮想環境外にインストールできたので問題ありません。次に、そのファイルをPythonパッケージライブラリディレクトリから文字どおりコピーし、内の同じファイル内に貼り付けましたvenv。私の直感は、PythonのバージョンがAnacondaディストリビューションであるため、想定されている/使用されているパスに問題があることです。
kuanb 2017年

5

必要なパッケージをインストールする以外に、手動でPostgreSQL binディレクトリをPATHに追加する必要もありました。前に
$vi ~/.bash_profile
追加PATH=/usr/pgsql-9.2/bin:$PATHexport PATHます。
$source ~/.bash_profile
$pip install psycopg2


これがデフォルトのパスにならない理由はありますか?
2015

1
このようなエラーを修正する方法を教えてください!!! コマンド "/ usr / bin / python -c" import setuptools、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 「--compile --single-バージョン-外部管理に/を/ tmp / PIP-ビルドAUbwwG / psycopg2プライベートエラーコード1で失敗しました
ビジェイ

3

Windows XPでは、postgresがインストールされていないとこのエラーが発生します...


それでよろしいですか?Windowsマシンにpostgresをインストールしましたが、それでも取得できます。?
Saher Ahwal

2
彼らはなぜpostgresを持つための前提条件として彼らのサイトにそれを持っていないのですか?
Saher Ahwal


3

psycopg2をインストールする前に、python-devパッケージをインストールする必要があります。

Linux(おそらく他のシステムでも経験から話せない)で作業している場合は、devパッケージをインストールするときに、実行しているpythonのバージョンを正確に確認する必要があります。

たとえば、次のコマンドを使用した場合:

sudo apt-get install python3-dev

しようとしたときに私はまだ同じエラーに遭遇しました

pip install psycopg2

私はPython 3.7を使用しているので、コマンドを使用する必要がありました

sudo apt-get install python3.7-dev

私がこれをしたら、私はもう問題に遭遇しませんでした。明らかにPythonバージョン3.5の場合、7を5に変更します。


2
これが答えであるはずsudo apt-get install python-x.x-devです。問題を修正しました。
Arbazz Hussain

2

私はこれと何日も戦い、「pip install psycopg2」コマンドをWindows(Cygwinを実行している)のvirtualenvで実行する方法をようやく見つけました。

「pg_config実行ファイルが見つかりません。」に遭遇しました。エラーですが、私はすでにpostgresをWindowsにダウンロードしてインストールしていました。Cygwinにもインストールされました。Cygwinで "which pg_config"を実行すると "/ usr / bin / pg_config"が得られ、 "pg_config"を実行すると正しい出力が得られますが、Cygwinでインストールされるバージョンは次のとおりです。

バージョン= PostgreSQL 8.2.11

これは、少なくとも9.1を必要とするように見えるpsycopg2の現在のバージョンでは動作しません。Windowsパスに「c:\ Program Files \ PostgreSQL \ 9.2 \ bin」を追加すると、Cygwin pipインストーラーは正しいバージョンのPostgreSQLを見つけることができ、pipを使用してモジュールを正常にインストールできました。(とにかく、これはPostgreSQLのCygwinバージョンを使用するよりも望ましい方法です。ネイティブバージョンの方がはるかに高速に実行されるためです)。


2

Fedora 24の場合:Python 3.xの場合

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

仮想環境をアクティブ化します。

pip install psycopg2

2

Psycopg2はPostgresライブラリに依存しています。Ubuntuの場合:

apt-get install libpq-dev

次に:

pip install psycopg2

pipパッケージとapt-getパッケージを混在させることはお勧めできません。
wswld 2015

1

下手なWindowsユーザーの場合、下のリンクからpsycopg2をインストールする必要がありました。セットアップしたPythonインストールにインストールしてください。「psycopg2」という名前のフォルダーが、Pythonインストールのsite-packagesフォルダーに配置されます。

その後、そのフォルダーをvirtualenvのsite-packagesディレクトリにコピーするだけで問題ありません。

ここに、psycopg2をインストールするための実行可能ファイルを見つけることができるリンクがあります

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


私はこれを試してみましたが、psycopg2-2.6-cp34-none-win_amd64.whlはこのプラットフォームでサポートされているホイールではありません。
jayeshkv 2015年


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 -l、ホストlocalhost、デフォルトのデータベースポート5432、\dupsqlにアクセスしてパスワードを推測するとリストされるデータベースで動作させました。
ハリーモレノ

1

ではアーチベースのディストリビューション:

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


0

Ubuntuでは、postgres devパッケージが必要でした:

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

* virtualenvでテスト済み


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

私はこの問題を抱えていました。主な理由は、2つの同じバージョンがインストールされていることでした。1つはpostgres.appによるもので、もう1つはHomeBrewによるものです。

アプリのみを保持することを選択した場合:

brew unlink postgresql
pip3 install psycopg2

0

macOS Mojaveでは、コマンドラインツール10.3を使用した最新のアップデートを確認してください-私にとってはうまくいきました-ソフトウェアアップデートでアップデートしました。Mojaveの以前のバージョンのコマンドラインツールは私にとってはうまくいきませんでした。


-1

これを試してくださいGentoo

emerge dev-libs/libpqxx

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.