チュートリアル用にpostgresをインストールしようとしましたが、pip
でエラーが発生します。
pip install psycopg
私が得るエラーの断片:
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'.
Virtualenvのpg_config
はどこにありますか?構成方法postgresをシステム全体にインストールしたくないため、virtualenvを使用しています。
Macでは、 Postgres.app を使用している場合、pg_configファイルは/Applications/Postgres.app/Contents/Versions/<current_version>/bin
ディレクトリにあります。このエラーを修正するには、次のようにシステムパスに追加する必要があります。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
たとえば、現在のPostgres.appバージョンが9.5の場合、このエクスポート行は次のようになります。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
Postgres.appのより新しいバージョン(> 9.5?)では、次のようにバージョン番号の代わりに「最新」を追加できます。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Macでは、解決策はpostgresql
をインストールすることです。
brew install postgresql
CentOSでは、解決策はpostgresql-devel
をインストールすることです。
Sudo yum install postgresql-devel
pg_config
はpostgresql-devel
パッケージにあります
私は john hight に完全に同意します。投稿された回答のほとんどは、OPがvirtualenvを使用する必要性を正確に指定していると仮定すると完全にオフトピックです。
私にとっての答えは、virtualenvをアクティブにしている間にプロンプトで次のコマンドを実行することでした:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(パート9.4はバージョンを表し、異なる場合があることに注意してください)
または、Postgresの最新インストール済みバージョンを使用する場合:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
その後:
pip install psycopg2
あなたがpostgresをインストールしたと仮定してうまくいきます。そうでない場合、最良の推奨ソリューションは以下を使用することであることを忘れないでください: Postgres.app
仮想環境での$ PATH変数は、グローバルな$ PATH変数であることを忘れないでください。これは、virtualenvおよび新しいシェルで「echo $ PATH」を使用して確認できます。そのため、PostgreSQLを仮想環境内に一意のインスタンスとしてインストールする場合(実行する価値はありません、imo)、virtualenv内の$ PATH変数を変更して、グローバルインストールへのパスを含める必要があります(これにより、不足しているpg_configエラーを解決してください)。
手順は次のとおりです
1.)新しいシェルで、「which pg_config」と入力します。これはパスを返します。コピーします。私の場合、パスは次のようになりました:/Applications/Postgres.app/Contents/Versions/9.3/bin
2.)virtualenvシェルに戻り、「export PATH =/your-path-to-pg_config:$ PATH」と入力します
3.)その後、virtualenv内で「pip install psycopg2」
すべてが計画どおりであれば、これにより仮想環境内にpsycopg2がインストールされますが、インストールはグローバルPostgreSQLインストールを参照します。私の場合、このグローバルインストールはPostgres.App、つまりパスを介してインストールされました。定義された仮想環境内だけでなく、任意のvirtualenv内でデータベースを簡単に使用できることを意味するため、psycopg2を使用するこの方法を好みます。
これがここに到着する人を助けることを願っています。 Googleジュースの場合、この問題に遭遇したときに返される明示的な(あいまいな)エラー言語は次のとおりです。
コマンドpython setup.py Egg_infoはエラーコード1で失敗しました
Mac(OSX 10.9)でこの問題を解決できた方法は次のとおりです。
brew update
brew install --force ossp-uuid
brew install postgresql
pip install psycopg
pip install psycopg
( LLVM 5.1 issue )を試したときにCLANGエラーが発生したため、代わりにこのコマンドでpsycopgをインストールする必要がありました。
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
Mingyu's ソリューションに似ていますが、共有する価値があると思った十分な違いがあります。
このエラーは、ビルドツールがPostgresqlライブラリを見つけられない場合に発生します。
多くの場合、pg_configバイナリの検索方法をpsycopg2に指示する必要があります。
シェルパス(/ usr/local/pgsql/bin /)でpg_configにパスを追加します
または、psycopg2ソースフォルダーのsetup.cfgファイルを編集し、pg_config =で始まる行にpg_configへのフルパスを指定します。
pg_config =/usr/local/pgsql/bin/pg_config
locate pg_config
を実行して、それがどこにあるかを調べるか、単にwhich pg_config
と入力すると、パスが表示されます。あまり頻繁ではありませんが、システムにpostgresqlがインストールされていないことが原因です。その場合、postgresをダウンロードしてビルドするか、OS X用のビルド済みのpsycopg2バイナリをダウンロードします。
OS X El Captain (10.11.6)
+ brew
+ virtualenv
+ PostgreSQL 9.5
の場合:
PostgreSQL 9.5
をインストールした後:
brew install [email protected]
ターミナルを開いて実行します:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/
pip install psycopg2
Windowsでは、 http://www.enterprisedb.com/products-services-training/pgdownload#windows からpostgresを手動でインストールしました。その後、同じコマンドが機能します。
Postgresql 9.4を使用している場合、ファイルは次の場所にあります。
/usr/pgsql-9.4/bin/pg_config
パッケージの名前は
postgresql94-9.4.9-1PGDG.rhel6.x86_64
pg_configをPATHに追加するには、次を実行します
PATH=$PATH:/usr/pgsql-9.4/bin/
Postgres.appの documentation によると、@ bkevと@andiによって提供される回答に加えて、Macのbash_profileに次を追加する必要があります。
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
ハードコードされたバージョン番号はないことに注意してください。上記の回答のコメントとしてこれを追加したかったのですが、これに対する十分な担当者がいません。
virtualenvはpythonパッケージ用です。 virtualenv内にpostgresを含めることができるとは思わない。表示されているエラーメッセージは、おそらくpostgresをまだインストールしていないためです。 psycopg2インストールスクリプトは、postgresファイル(この場合はpg_config)を探していますが、インストールされていないため、それらを見つけられません。 postgresは、pipまたはvirtualenvを使用してインストールできません。
psycopg
ドライバーを特に使用する必要がない場合は、pg8000
ドライバーに切り替えます。それは純粋なPythonであり、あまり面倒ではありません。
鉱山は/Library/PostgreSQL/9.4/binにありました
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
buntでpostgres devパッケージが必要になりました:
Sudo apt-get install postgresql-server-dev-all