2013-06-16 26 views
26

Amazon Elastic BeanstalkのPsycopg2を使用している私のプロジェクト(Pythonで)をアップロードしようとしています。私は私のプロジェクトとrequirements.txtファイルを含むzipファイルでこれをやっています。Amazon Elastic BeanstalkのPsycopg2

しかし、私はこのエラーを受けています:

Downloading/unpacking psycopg2>=2.4.6 (from -r /opt/python/ondeck/app/requirements.txt (line 3)) Running setup.py egg_info for package 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'. 
Complete output from command python setup.py egg_info: 
running egg_info 

私はAmazonでこの問題を解決するにはどうすればよいですか?

+0

requirements.txtファイルはどのようなものですか? – Talvalin

+0

私のrequirements.txtは: 竜巻> = 2.0.0 httplib2> = 0.8 psycopg2> = 2.4.6 – ECC

+0

'which pg_config'を実行するとどうなりますか? – Talvalin

答えて

46

あなたのコンテナにpostgresql-develが必要です。 内容でファイル「.ebextensions/packages.config」を作成します。

packages: 
    yum: 
    postgresql94-devel: [] 

はあなたが必要とするのpostgresのどんなバージョンでpostgresql94-devel94を交換してください。たとえば、postgres 9.3の場合はpostgresql93-develとなります。

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-packages

+3

"Yumはpostgresql-develを持っていません"というエラーが表示されます。 – Surya

+0

postgresql94-develまたはインスタンスに必要なバージョンを試してください。 eb sshをインスタンスにインストールし、インストールされているpostgresのバージョンを確認するために 'yum list installed'を使います。 – Matthew

+0

Amazon LinuxのPostgreSQL 9.4は、バージョン2015.09以降で使用できます。まずAmazon Linuxをアップデートしてから、環境を再構築することを忘れないでください。 –

1

私はしばらくの間、苦労して仕事に上記の溶液を得ることができませんでした。私は他の多くのソリューションも試しましたが、それは私の基本的な理解の欠如に終わった。

設定ファイルはアルファベット順に表示されます。ですから、あなたがそうする可能性のある複数のパッケージを持っているなら、.configにcontainer_commandsの前に 'packages.config'がアルファベット順で付いていることを確認してください。

これ以外の場合は、パッケージがインストールされる前に 'syncdb'などが呼び出されます。

20

受け入れられた回答にコメントをしようとしましたが、そのように評価する必要はありません。 AWSサポートからの最近のフォーラム投稿は、パッケージ名が "postgresql93-devel"であることを示しています。 postgresql-develは2014.09 AMIでは動作しません。

関連する問題