pg_config実行可能ファイルが見つかりません


769

psycopg2のインストールに問題があります。しようとすると、次のエラーが表示されますpip install psycopg2

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 in /tmp/pip-build/psycopg2

しかし、問題はpg_config実際には私のものPATHです。問題なく実行されます:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

setup.cfgファイルにpg_configパスを追加し、自分のWebサイト(http://initd.org/psycopg/)からダウンロードしたソースファイルを使用してそれをビルドしようとすると、次のエラーメッセージが表示されます。

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

しかし、実際にはそこにあります!!!

私はこれらのエラーに困惑しています。誰か助けてくれますか?

ちなみに、私はsudoすべてのコマンド。また、私はRHEL 5.5を使用しています。


8
コマンドをとして実行するとsudo$PATHが変更されます。ルートとして$ PATHを再確認できますか?
Hugo Tavares 2012

1
私の場合、私は走りln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_config、すべてが大丈夫です!
CK.Nguyen

@ CK.Nguyenに感謝します。
プラティバ

回答:


765

pg_configであるpostgresql-devellibpq-devDebianの/ Ubuntuのでは、libpq-develCentOSに/ Cygwinの/ Babunに。)


66
libpq-devubuntu lucid(10.04)にインストールすると解決しました。前もって感謝します。
pylover 2013年

22
pg_configof postgress.appは/Applications/Postgres.app/Contents/Versions/<your version>/bin(Mac OS X)にあります
TimDaubenschütz2015年

17
それlibpqxx-develはfedoraにあります。
robsn 2015

55
sudo apt-get install libpq-devUbuntuで私のために働いた
ビルチートハム'10

48
Alpine Linux:apk add postgresql-dev
RJ

385

Mac OS Xでは、自作のパッケージマネージャーを使用して解決しました

brew install postgresql

29
優秀な!これで問題は解決しましたが、初心者は、コマンドを機能させるために最初にHomebrewパッケージマネージャーをインストールする必要があることに注意してくださいbrew
seane、2014

pgadminをインストールした後にbrewをインストールしたにもかかわらず、私にとってもうまくいきました。
Khanal

8
データベース全体をインストールしませんか?
zmbq 2016

3
追加が必要ですbrew link postgresql
vincentlcy

1
@seaneのコメントに追加するには、このチュートリアルを使用しをインストールしhomebrewます。
Bruce Wayne

236

インストールしましたpython-devか?すでにお持ちの場合は、インストールもお試しくださいlibpq-dev

sudo apt-get install libpq-dev python-dev

記事から:virtualenvでpsycopg2をインストールする方法


私のコンピューターでは、Postgresqlのクライアントのみをインストールしているため、libpq-devとpython-devをインストールする必要があります。
bnPYSse 2014年

2
python-devが必要であることは疑わしい。
juanitogan 2016

それはme.Thanks助け
アルン

4
python3-devが必要です。それがなければ私は得るPython.h: No such file or directory
krubo

1
これに必要なもう1つの依存関係はapt-get install -y gcc
次のとおり

74

OSXでも。http://postgresapp.com/からPostgress.appをインストールしましたが、同じ問題がありました。

pg_configそのアプリのコンテンツで見つけ、dirをに追加しました$PATH

でした/Applications/Postgres.app/Contents/Versions/latest/bin。これはうまくいきました:export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"


3
@GianlucaLodigianiは、コンソールを再起動したくない場合にも実行できますPATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
Bernardo Duarte

45

高山では、含むライブラリpg_configpostgresql-devです。インストールするには、以下を実行します。

apk add postgresql-dev

38

これはCentOSで私のために働いたものです、最初のインストール:

sudo yum install postgresql postgresql-devel python-devel

Ubuntuでは、同等のapt-getパッケージを使用してください。

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

そして、pip installでpostgresqlバイナリディレクトリへのパスを含めます。これは、DebainまたはRHELベースのLinuxのいずれでも機能するはずです。

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

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


1
Ubuntuのsudo apt-get install postgresql postgresql-dev python-dev場合、これは私にとってはうまくいきました。
modulitos 2014

2
2016年12月現在、Amazon Linux AMIでも動作します。また、gccがインストールされ、python3-develであることを確認してください。
villasv 16

ありがとうございました!!!Fedora 32 Workstationでも動作しました!
Marcelo Gazzola


34

UbuntuのPostgresで使用されているpython要件を追加する必要があります。実行:

sudo apt-get install libpq-dev python-dev

32

要約すると、私もまったく同じ問題に直面しました。多くのスタックオーバーフローの投稿とオンラインブログを読んだ後、私のために働いた最終的な解決策はこれです:

1)psycopg2をインストールする前に、PostgreSQL(開発版または任意の安定版)をインストールする必要があります。

2)pg_configファイル(通常、このファイルはPostgreSQLインストールフォルダーのbinフォルダーにあります)psycopg2をインストールする前に、PATHを明示的に設定する必要がありました。私の場合、PostgreSQLのインストールPATHは次のとおりです。

/opt/local/lib/postgresql91/

pg_configファイルのPATHを明示的に設定するために、端末に次のコマンドを入力しました。

PATH=$PATH:/opt/local/lib/postgresql91/bin/

このコマンドにより、psycopg2をpipインストールしようとしたときに、今回はpg_configへのパスが自動的に検出されます。

また、トレース付きの完全なエラーとその解決策をブログに投稿しましたので、参照してください。これはMac OS X用ですが、pg_config PATHの問題は一般的で、Linuxにも適用できます。


6
私にとってOS Xのパスは次のようになりましたPATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
andilabs

@andiはい、Postgresのインストールパスは異なる場合がありますが、上記で説明したpsycopg2のインストールレシピは同じです。お役に立てば幸いです。
Ali Raza Bhayani 2014

30

sudo apt-get install libpq-dev Ubuntu 15.4で動作します


新しいUbuntuを使用している場合でも、前述のインストール手順を使用してください。pg_configを
palik

23

LinuxではMint sudo apt-get install libpq-devが私のために働きました。


21

pipまたはを使用して、任意のプラットフォームにプリコンパイルされたバイナリをインストールできますconda

python -m pip install psycopg2-binary

または

conda install psycopg2

psycopg2-binary pypiページでは、本番環境のソースからビルドすることを推奨しています

バイナリパッケージは、開発とテストの実用的な選択肢ですが、本番環境では、ソースからビルドされたパッケージを使用することをお勧めします

ソースからビルドされたパッケージを使用するには、を使用しますpython -m pip install psycopg2。そのプロセスには、いくつかの依存関係が必要になります(ドキュメント)(鉱山を強調):

  • ACコンパイラ
  • Pythonのヘッダファイル。それらは通常、python-devなどのパッケージにインストールされます。。エラーなどのメッセージ:Python.h:そのようなファイルまたはディレクトリは、Pythonヘッダーが欠落していることを示しています。
  • libpqのヘッダファイル。これらは通常、libpq-devなどのパッケージにインストールされます。。エラーが発生した場合:libpq-fe.h:そのようなファイルやディレクトリはありません。
  • pg_configプログラム:それは通常でインストールされているのlibpq-devののパッケージが、時にはそれがPATHディレクトリにありません。PATHにインストールすると、インストールが大幅に効率化されるので、pg_config --versionを実行してみてください。エラーまたは予期しないバージョン番号が返された場合は、正しいlibpqバージョン(通常は/ usr / lib / postgresql /に同梱されているpg_configを含むディレクトリを探します。 XY / bin /)を追加してPATHに追加し $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH ます。psycopg2をコンパイルするには、pg_configのみが必要です。通常の使用では必要ありません。

Ubuntuでは、私が最初にlibpq-devのライブラリをインストールするのに必要な、その後もう一度ピップinstallコマンドを実行しますapt install libpq-dev
ベンジャミン

20

UPDATE /etc/yum.repos.d/CentOS-Base.repo、[base]および[updates]セクション
ADD exclude = postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

20

OS Xを実行している人にとって、このソリューションは私にとってうまくいきました:

1)Postgres.appをインストールします。

http://www.postgresql.org/download/macosx/

2)次に、ターミナルを開いて次のコマンドを実行します。{{version}}とある箇所をPostgresのバージョン番号に置き換えます。

エクスポートPATH = $ PATH:/Applications/Postgres.app/Contents/Versions / {{version}} / bin

例えば

エクスポートPATH = $ PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin


または、最新バージョンへのシンボリックリンクsudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
Subin Sebastian '

17

それをPATHに追加してみてください:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory
pylover 2013年

@ pylover、Postgres binディレクトリへの正しいパスを使用する必要があります。あなたはそれが確信している/usr/pgsql-x.x/bin/正しいのですか?
Marboni 2013

すべての重要なpg_ファイルが存在するフォルダを追加するだけでも十分です。postgres.appの場合、Mac OS Xでのこのパスは/Applications/Postgres.app/Contents/Versions/9.3/binです。 新しいバージョンがリリースされた場合はPATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/binバージョンを更新してください*
TimDaubenschütz15年

これはOS X El Capitanで私にとってはうまくいきました:PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
David Hariri

16

Aliの解決策はうまくいきましたが、binフォルダーの場所を見つけるのに苦労していました。Mac OS Xでパスを見つける簡単な方法は、psqlを開くことです(上部のメニューバーにクイックリンクがあります)。これにより、別のターミナルウィンドウが開き、2行目にPostgresインストールのパスが次のように表示されます。

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

pg_configファイルはそのbinフォルダーにあります。したがって、psycopg2をインストールする前に、pg_configファイルのパスを設定します。

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

または新しいバージョンの場合:

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

次に、psycopg2をインストールします。


1
新しいドキュメントは、次のパスを使用します/Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

動き回っているようです。find /usr/local -name 'pg_config'
Praxeolitic 2014年

11

psycopg2をインストールする前に、pipをアップグレードする必要があります。このコマンドを使用

pip install --upgrade pip

ほとんどの場合、より詳細な回答が役立ちます。
bkausbk 2017年

11

提供されたすべての解決策にもかかわらずこの問題を回避できない次の不幸な魂のために、これをここに残します。単に使うsudo pip3 install psycopg2-binary


これは私にはうまくいきませんでした。brew install postgresql修正しただけです。
tsando

あなたはpip install psycopg2-binary私のために必要があるかもしれません:pip-> python2、pip3-> python3。しかし、それが機能する限り、多くの解決策の1つでした!
DuDoff

9

Cent OS 7の問題を次の方法で解決しました。

export PATH=$PATH:/usr/pgsql-9.5/bin

PostgreSqlのバージョンが上記の正しいバージョンと一致していることを確認してください。


9

Mac OS XでPostgres App(http://postgresapp.com/)を使用している場合:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

このコマンドでPostgresのバージョンを指定する必要はありません。常に最新のものを指します。

そして、やります

pip install psycopg2

PS:変更が反映されない場合、ターミナル/コマンドプロンプトを再起動する必要があるかもしれません

ソース




8

MacOSでは、最も簡単な解決策は、Postgresパッケージの下にある正しいバイナリをシンボリックリンクすることです。

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

これは無害であり、必要に応じて、すべてのアプリケーションがシステム全体で使用できます。


私にとってはうまくいきましたが、sudoする必要はありませんでした。ありがとうございました!
John Ottenlips

確かに私のために働く!
Hadnazzar


5

ここでは、OS Xの完全性のために、PostgreSQLをMacPortsからインストールする場合、pg_configは /opt/local/lib/postgresql94/bin/pg_configます。

MacPortsをインストールすると、すでに追加されています /opt/local/binすると、PATHにています。

したがって、これで問題が解決します。 $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

これで問題なくpip install psycopg2実行できるようになりpg_configます。


4

zshシェルを使用しているmacOS Catalinaを使用していて、postgresアプリもインストールしている場合:

~/.zshrcファイルを開き、次の行を追加します。

export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

次に、すべてのターミナルを閉じて再度開きます。これで問題は解決しました。

端末を閉じたくない場合は、source ~/.zshrc作業を続けたい端末を入力してください。


これはMacosとzshシェルで動作しました!
Aditya Rao

4

Macユーザーの場合、このようにPostgreSQLを含めるようにパス変数を拡張しますexport PATH=$PATH:/Library/PostgreSQL/12/bin


3

これが私がpsycopg2をインストールした方法です

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

2

私が行ったのと同じ「問題」を経験したことは間違いないので、非常に簡単な解決策を提供します...

あなたの場合、$ PATHに(またはコマンドパラメータとして)追加する必要がある実際のパスは次のとおりです。

/usr/pgsql-9.1/bin/pg_config

ない

/usr/pgsql-9.1/bin

たとえば、後でpython setup.pyスクリプトを実行する場合は、次のように実行します。

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

おそらく手遅れですが、それでも最も簡単な解決策です。

後で編集:

さらにテストしたところ、最初にpg_configへのパスを次の形式で追加した場合、

/usr/pgsql-9.1/bin

(..... / binの後に/ pg_configを付けずに)、pip installコマンドを実行します。

ただし、その指示に従ってpython setup.pyを実行する場合は、..... / binの後に/ pg_configを付けてパスを指定する必要があります。

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

pgsql / binディレクトリをPATHに追加する代わりに、私がかなり使用したPATHにシンボリックリンク/usr/pgsql-9.6/bin/pg_config(またはシステムで呼び出されるもの)を/usr/bin/pg_config使用する方法があります。これにより、すでに取得したPATHで使用できます。
ラルフボルトン

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