2013-06-16 3 views
26

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

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

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

Как выглядит ваш файл требований.txt? – Talvalin

+0

Мои требования.txt is: tornado> = 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: [] 

Заменить 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

+3

Я получаю сообщение об ошибке «Yum не имеет postgresql-devel». – Surya

+0

Попробуйте выполнить postgresql94-devel или любую другую версию вашего экземпляра. eb ssh на экземпляр и использовать 'yum list installed ', чтобы проверить, какая версия postgres установлена. – Matthew

+0

Postgresql 9.4 в Amazon Linux доступен с версии 2015.09. Сначала обновите Amazon Linux, а затем не забудьте перестроить среду. –

1

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

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

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

20

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