我在安装psycopg2时遇到了麻烦。当我尝试pip安装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'.

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2

但问题是pg_config实际上在我的PATH中;它运行起来没有任何问题:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

我尝试将pg_config路径添加到setup.cfg文件中,并使用我从他们的网站(http://initd.org/psycopg/)下载的源文件构建它,我得到了以下错误消息!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

但它确实在那里!!

我对这些错误感到困惑。有人能帮忙吗?

顺便说一下,我sudo所有的命令。而且我使用的是RHEL 5.5。


当前回答

一个简单的解决方法是

pip install psycopg2==2.7.5

其他回答

apt-get build-dep python-psycopg2

更新/etc/yum.repos.d / CentOS-Base。回购,[基础]和[更新]部分 添加排除= postgresql *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

对于任何在Django应用程序中遇到这个问题并将其部署到AWS的人来说,本教程中描述的方法对我来说是有效的:https://realpython.com/deploying-a-django-app-and-postgresql-to-aws-elastic-beanstalk/

下面是作者对出现以下错误的解释:

Error: pg_config executable not found.

问题是我们试图安装psycopy2 (Postgres Python绑定),但我们还需要安装Postgres客户端驱动程序。因为默认情况下没有安装它们,所以我们需要先安装它们。 Eb将从名为“。”的文件夹中读取自定义的。config文件。Ebextensions”在项目的根级别。这些.config文件允许您安装包,运行任意命令和/或设置环境变量。文件中的。ebextensions”目录应该符合JSON或YAML语法,并按字母顺序执行。 首先要做的是安装一些包,以便pip install命令能够成功完成。为此,让我们创建一个名为.ebextensions/01_packages.config的文件:

packages:
  yum:
    git: []
    postgresql93-devel: []
    libjpeg-turbo-devel: []

EC2实例运行Redhat版本的Amazon Linux,因此我们可以使用yum来安装所需的包。现在,我们只安装三个包——git、Postgres客户端和Pillow的libjpeg。

你可以使用二进制文件,当Django试图将其作为依赖的一部分安装时,我在dockerizing应用程序时遇到了这个问题,为了解决这个问题,我对requirements.txt使用了这个设置,首先安装二进制文件,然后Django不再尝试安装它: psycopg2-binary django gunicorn

如果你试图在你的虚拟环境中添加psycopg2依赖项,它将允许你的python项目连接到你的docker或kubernetes pod,在你的Mac上单独运行postgresql,并且不真正有兴趣在Mac上安装postgresql,只是为了获得pg_config,下面是你要做的:

按照pipenv安装错误输出中的建议安装psycopg2_binary,一切都会正常工作。