web-dev-qa-db-ja.com

Amazon ElasticBeanstalkのPsycopg2

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

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

Psycopg2> = 2.4.6のダウンロード/解凍(-r /opt/python/ondeck/app/requirements.txt(3行目)から)パッケージpsycopg2のsetup.py Egg_infoを実行していますエラー:pg_config実行可能ファイルが見つかりません。

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でこれを解決するにはどうすればよいですか?

31
Eduardo

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

packages:
  yum:
    postgresql94-devel: []

94postgresql94-develを必要なバージョンのpostgresに置き換えます。たとえば、postgres9.3の場合はpostgresql93-develです。

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

47
spenthil

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

20
Erik

私はしばらく苦労し、上記の解決策を機能させることができませんでした。他の多くの解決策も試しましたが、結局は基本的な理解が不足していました。

構成ファイルはアルファベット順に読み取られます。したがって、複数ある可能性がある場合は、container_commandsを使用して.configの前に「packages.config」がアルファベット順に来るようにしてください。

それ以外の場合、たとえば「syncdb」は、パッケージがインストールされる前に呼び出されます。

2
quin