2013-06-16 12 views
26

Próbuję przesłać mój projekt (w python), który używa Psycopg2 dla Amazon Elastic Beanstalk. Robię to z plikiem zip zawierającym mój projekt i plik requirements.txt.Psycopg2 na Amazon Elastic Beanstalk

Ale ja dostaję ten błąd:

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 

Jak mogę rozwiązać ten na Amazon?

+0

Jak wygląda twój plik requirements.txt? – Talvalin

+0

Mój requirements.txt to: tornado> = 2.0.0 httplib2> = 0,8 psycopg2> = 2.4.6 – ECC

+0

Co stanie się, jeśli uruchomisz 'which pg_config'? – Talvalin

Odpowiedz

46

Potrzebujesz postgresql-devel w swoim kontenerze. Utwórz plik „.ebextensions/packages.config” z treścią:

packages: 
    yum: 
    postgresql94-devel: [] 

Wymień 94 w postgresql94-devel z niezależnie od wersji PostgreSQL trzeba. Na przykład: postgresql93-devel dla PostgreSQL 9.3.

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

+3

Otrzymuję komunikat o błędzie "Mniam nie ma postgresql-devel". – Surya

+0

Spróbuj postgresql94-devel lub jakiejkolwiek wersji, której potrzebuje twoja instancja. eb ssh na instancję i użyj 'listy zainstalowanych yum', aby sprawdzić, która wersja programu Postgres jest zainstalowana. – Matthew

+0

PostgreSQL 9.4 w Amazon Linuks jest dostępny od wersji 2015.09. Najpierw zaktualizuj Amazon Linuks, a następnie nie zapomnij odbudować środowiska. –

1

Walczyłem na chwilę z i nie mógł dostać powyższe rozwiązanie do pracy. Próbowałem również wielu innych rozwiązań, ale z mojej strony był to brak podstawowego zrozumienia.

Pliki konfiguracyjne są odczytywane alfabetycznie. Więc jeśli masz więcej niż jeden, co prawdopodobnie robisz, upewnij się, że "packages.config" jest alfabetycznie przed twoim .config z container_commands.

W przeciwnym razie na przykład "syncdb" zostanie wywołany przed zainstalowaniem pakietów.

20

Próbowałem skomentować zaakceptowaną odpowiedź, ale nie mam takiej reputacji. Ostatnie posty na forum ze wsparcia AWS wskazują, że nazwa pakietu to "postgresql93-devel". Postgresql-devel nie działa w AMI 2014.09.

Powiązane problemy