I'm trying upload my project (in python) that uses Psycopg2 for Amazon Elastic Beanstalk. I'm doing this with a zip file containing my project and an requirements.txt file.
But I'm receiving this error:
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
How can I solve this on Amazon?
Need postgresql-devel in your container. Create a file '.ebextensions/packages.config' with the contents:
Replace
94
inpostgresql94-devel
with whatever version of postgres you need. For example,postgresql93-devel
for postgres 9.3.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-packages
I struggled for a while with and couldn't get the above solution to work. I tried many other solutions as well, but it ended up being a lack of fundamental understanding on my part.
The config files are read alphabetically. So if you have more than one, which you likely do, make sure that 'packages.config' comes alphabetically before your .config with container_commands.
Otherwise 'syncdb' for example will be called before your packages have been installed.
Tried to comment on the accepted answer but don't have the reputation to do so. Recent forum posts from AWS support indicate that the package name is "postgresql93-devel". postgresql-devel does not work in the 2014.09 AMIs.