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
Pg_configパスをsetup.cfg
ファイルに追加し、私が彼らのウェブサイト( http://initd.org/psycopg/ )からダウンロードしたソースファイルを使用してそれを構築しようとしました、そして、私は以下のエラーメッセージを得ます!
Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'
しかし、それは実際にあります!
私はこれらのエラーに困惑しています。誰かが喜ばせることができますか?
ところで、私はすべてのコマンドをSudo
しています。また、私はRHEL 5.5にいます。
pg_config
はpostgresql-devel
にあります(Debian/Ubuntuではlibpq-dev
、Cygwin/Babunではlibpq-devel
)。
Mac OS Xでは、 homebrew パッケージマネージャを使って解決しました。
brew install postgresql
Python-devをインストールしましたか?すでにお持ちの場合は、libpq-devもインストールしてみてください。
Sudo apt-get install libpq-dev python-dev
OSXでも。 http://postgresapp.com/ からPostgress.appをインストールしましたが、同じ問題がありました。
そのアプリのコンテンツでpg_config
を見つけて、そのディレクトリを$PATH
に追加しました。
/Applications/Postgres.app/Contents/Versions/latest/bin
にありました。これでうまくいきました:export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
。
apt-get build-dep python-psycopg2
アルパインでは、pg_config
を含むライブラリは postgresql-dev
です。インストールするには、次のコマンドを実行してください。
apk add postgresql-dev
まとめると、私も全く同じ問題に直面しました。多くのstackoverflowの投稿やオンラインブログを読んだ後、私のために働いた最後の解決策はこれです:
1)psycopg2をインストールする前にPostgreSQL(開発版または安定版)をインストールする必要があります。
2)pg_configファイル(このファイルは通常PostgreSQLインストールフォルダのbinフォルダにあります)PATHはpsycopg2をインストールする前に明示的に設定する必要がありました。私の場合、PostgreSQLのインストールパスは次のとおりです。
/opt/local/lib/postgresql91/
そのため、pg_configファイルのPATHを明示的に設定するために、私は自分の端末で次のコマンドを入力しました。
PATH=$PATH:/opt/local/lib/postgresql91/bin/
このコマンドは、あなたがpsycopg2をピップインストールしようとするとき、それは今度は自動的にpg_configへのPATHを見つけるでしょう。
私はまたあなたが参照したいと思うかもしれない私の blog に跡およびその解決との完全なエラーを掲示しました。これはMac OS X用ですが、pg_configのPATH問題は一般的なもので、Linuxにも当てはまります。
Sudo apt-get install libpq-dev
はUbuntu 15.4で動作します
これはCentOSで私のために働いたものです、最初にインストールしてください:
Sudo yum install postgresql postgresql-devel python-devel
Ubuntuでは、同等のapt-getパッケージを使うだけです。
Sudo apt-get install postgresql postgresql-dev python-dev
そして今、あなたのpostgresqlバイナリディレクトリへのパスをpip installで含めてください。これはDebainかRHELベースのLinuxのどちらでも動くはずです:
Sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2
必ず正しいパスを含めてください。それで全部です :)
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
OS Xを実行している人のために、この解決策は私のために働きました:
1)Postgres.appをインストールします。
http://www.postgresql.org/download/macosx/
2)それからTerminalを開いて、{{version}}のところをPostgresのバージョン番号に置き換えて、このコマンドを実行します。
エクスポートパス= $パス:/Applications/Postgres.app/Contents/Versions/{{version}}/bin
例えば.
エクスポートパス= $パス:/Applications/Postgres.app/Contents/Versions/9.4/bin
Linux MintではSudo apt-get install libpq-dev
が私のために働きました。
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をインストールしてください。
PATHに追加してみてください。
PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2
Psycopg2をインストールする前にpipをアップグレードする必要があります。このコマンドを使う
pip install --upgrade pip
Cent OS 7の問題を解決するには、以下の手順に従ってください。
export PATH=$PATH:/usr/pgsql-9.5/bin
あなたのPostgreSqlのバージョンが上記の正しいバージョンと一致することを確認してください。
これは私のために働く:
Sudo apt-get install libpq-dev python-dev
Windowsでは、 psycopgのドキュメント で推奨されている WindowsポートのPsycopg をインストールすることをお勧めします。
Sudo yumインストールpostgresql-devel(centos6X)
pip install psycopg2 == 2.5.2
ここでは、OS Xを完全にするために、MacPortsからPostgreSQLをインストールした場合、pg_configは/opt/local/lib/postgresql94/bin/pg_config
になります。
あなたがMacPortsをインストールしたとき、それはあなたのPATHに既に/opt/local/bin
を追加しました。
だから、これは問題を解決します:$ Sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config
これでpip install psycopg2
は問題なくpg_config
を実行できるようになります。
Mac OS XおよびPostgres Appを使用している場合( http://postgresapp.com/ /):
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
このコマンドでPostgresのバージョンを指定する必要はありません。それは常に最新を指すでしょう。
そして、やります
pip install psycopg2
P.S:変更が反映されていない場合は、ターミナル/コマンドプロンプトを再起動する必要があるかもしれません。
python-psycopg2
をインストールすると、Arch Linux上でそれが解決しました。
pacman -S python-psycopg2
これが私がどうやって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
$ python setup.py install
Gentooでは以下を実行する必要があります。
# Install postgresql client libraries
Sudo emerge postgresql-base
MacOSでは、最も簡単な方法は、Postgresパッケージ内にある正しいバイナリをシンボリックリンクすることです。
Sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
これはかなり無害であり、必要に応じてすべてのアプリケーションがシステム全体で使用できます。
centOS/RedHatの場合、/etc/alternatives/pgsql-pg_config
が壊れていないシンボリックリンクであることを確認してください。
Djangoアプリケーションで作業し、AWSにデプロイするこの問題が発生した場合は、このチュートリアルで説明した方法が役に立ちました: https://realpython.com/deploying-a-Django-app -and-postgresql-to-aws-elastic-beanstalk /
以下は、次のエラーが発生したときの著者の説明です。
Error: pg_config executable not found.
問題は、psycopy2(Postgres Pythonバインディング)をインストールしようとしましたが、Postgresクライアントドライバーもインストールする必要があることです。デフォルトではインストールされないため、最初にインストールする必要があります。
ebは、プロジェクトのルートレベルにある「.ebextensions」というフォルダーからカスタム.configファイルを読み取ります。これらの.configファイルを使用すると、パッケージをインストールしたり、任意のコマンドを実行したり、環境変数を設定したりできます。 「.ebextensions」ディレクトリ内のファイルは、JSONまたはYAML構文のいずれかに準拠する必要があり、アルファベット順に実行されます。
最初に行うことは、pip installコマンドが正常に完了するようにいくつかのパッケージをインストールすることです。これを行うには、.ebextensions/01_packages.configというファイルを作成しましょう。
packages:
yum:
git: []
postgresql93-devel: []
libjpeg-turbo-devel: []
EC2インスタンスはRedhatフレーバーであるAmazon Linuxを実行するため、yumを使用して必要なパッケージをインストールできます。ここでは、git、Postgresクライアント、Pillow用のlibjpegの3つのパッケージをインストールします。
Windows:
パス:C:\ Program Files\PostgreSQL\9.5\bin;
私はあなたが私が経験したのと同じ「問題」を経験したと確信しています、それで私はあなたに非常に簡単な解決策を提供するつもりです...
あなたの場合、$ 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
MAC Mojaveで、brewを使ってインストールした場合は、brew info <your postgres>
を実行してください。
設定する必要があるすべての環境変数が表示されます。これらのコマンドをコピーアンドペーストし、シェルを再起動するだけで完了です。
私はこのページが私のMacにPostgreSQLをインストールするための最良の指示を提供し、そしてpip installコマンドがその後完全に機能することを発見しました:
https://www.codefellows.org/blog/three-battle-tested-ways-to-install-postgresql