34

我正在尝试上传将 Psycopg2 用于 Amazon Elastic Beanstalk 的项目(在 python 中)。我正在使用包含我的项目和 requirements.txt 文件的 zip 文件来执行此操作。

但我收到此错误:

下载/解压 psycopg2>=2.4.6(来自 -r /opt/python/ondeck/app/requirements.txt(第 3 行)) 为包 psycopg2 运行 setup.py egg_info 错误:找不到 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

我如何在亚马逊上解决这个问题?

4

4 回答 4

53

在您的容器中需要 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

于 2013-11-28T21:05:17.690 回答
20

试图评论接受的答案,但没有这样做的声誉。AWS 支持最近的论坛帖子表明包名称是“postgresql93-devel”。postgresql-devel 在 2014.09 AMI 中不起作用。

于 2014-11-14T17:44:53.760 回答
3

我挣扎了一段时间,无法使上述解决方案发挥作用。我也尝试了许多其他解决方案,但最终我缺乏基本的理解。

配置文件按字母顺序读取。因此,如果您有多个(您可能会这样做),请确保“packages.config”按字母顺序出现在带有 container_commands 的 .config 之前。

否则,例如“syncdb”将在您的软件包安装之前被调用。

于 2014-05-28T22:30:21.773 回答
0
sudo yum install gcc python-setuptools python-devel postgresql-devel
sudo easy_install psycopg2

这在我的 Linux AWS 上完美运行

于 2020-04-15T23:44:22.157 回答