Подтвердить что ты не робот

Psycopg2 на эластичном бобовом стебле Amazon

Я пытаюсь загрузить мой проект (в python), который использует Psycopg2 для Amazon Elastic Beanstalk. Я делаю это с zip файлом, содержащим мой проект и файл requirements.txt.

Но я получаю эту ошибку:

Загрузка/распаковка psycopg2 >= 2.4.6 (от -r /opt/python/ondeck/app/requirements.txt(строка 3)) Запуск setup.py egg_info для пакета psycopg2     Ошибка: исполняемый файл 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?

4b9b3361

Ответ 1

Требуется postgresql-devel в вашем контейнере. Создайте файл '.ebextensions/packages.config' с содержимым:

packages:
  yum:
    postgresql94-devel: []

Замените 94 в postgresql94-devel любой версией postgres, в которой вы нуждаетесь. Например, postgresql93-devel для postgres 9.3.

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

Ответ 2

Пытался прокомментировать принятый ответ, но не имеет такой репутации. Недавние сообщения на форуме из поддержки AWS показывают, что имя пакета - postgresql93-devel. postgresql-devel не работает в AMI 2014.09.

Ответ 3

Я боролся некоторое время и не мог заставить вышеупомянутое решение работать. Я также пробовал много других решений, но в конечном итоге это было отсутствие фундаментального понимания с моей стороны.

Конфигурационные файлы читаются в алфавитном порядке. Поэтому, если у вас более одного, что вы, вероятно, сделаете, убедитесь, что "packages.config" поступает в алфавитном порядке перед вашим .config с помощью команд container_commands.

В противном случае, например, будет вызываться "syncdb", прежде чем ваши пакеты будут установлены.