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?
Ответы
Ответ 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", прежде чем ваши пакеты будут установлены.