我在安装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。


当前回答

我建议你尝试使用postgresp。app。(http://postgresapp.com)通过这种方式,你可以很容易地在你的Mac上打开和关闭Postgres。一旦你这样做了,添加到Postgres的路径到你的.profile文件,通过追加以下内容:

路径= " /应用程序/ Postgres.app /内容/版本/最近/ bin:美元路径”

只有在将Postgres添加到路径后,才能尝试在虚拟环境中(使用pip)或在全局站点包中安装psycopg2。

其他回答

你可以使用pip或conda在任何平台上安装预编译的二进制文件:

python -m pip install psycopg2-binary

or

conda install psycopg2

请注意psycopg2-binary pypi页面建议在生产环境中从源代码构建:

二进制包是开发和测试的实际选择,但在生产中,建议使用从源代码构建的包

使用python -m pip install psycopg2可以使用从源代码构建的包。该过程将需要几个依赖项(文档)(强调我的):

一个C编译器。 Python头文件。它们通常安装在一个包中,例如python-dev。诸如error: Python.h: No such file或directory之类的消息表明Python头文件丢失。 libpq头文件。它们通常安装在libpq-dev之类的包中。如果您得到一个错误:libpq-fe.h:没有这样的文件或目录,那么您丢失了它们。 pg_config程序:通常由libpq-dev包安装,但有时不在PATH目录中。将它放在PATH中可以大大简化安装,所以尝试运行pg_config——version:如果它返回一个错误或一个意外的版本号,那么找到包含正确的libpq版本(通常是/usr/lib/postgresql/X.Y/bin/)的pg_config目录,并将其添加到PATH中: $ export PATH=/usr/lib/postgresql/X。Y / bin /: $路径 您只需要pg_config来编译psycopg2,而不是用于它的常规使用。

一旦一切就绪,就只需要运行标准了: $ PIP安装psycopg2 或者,从包含源代码的目录: $ python setup.py编译 $ python setup.py install

这里,为了OS X的完整性:如果你从MacPorts安装PostgreSQL, pg_config将在/opt/local/lib/postgresql94/bin/pg_config。

当你安装MacPorts时,它已经将/opt/local/bin添加到你的PATH中。

所以,这将解决问题: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config . sh /opt/local/bin/pg_config . sh

现在pip install psycopg2将能够毫无问题地运行pg_config。

你必须安装libpq-dev/ PostgreSQL -libs,这是编译C程序链接到libpq库的头文件和静态库,以便与PostgreSQL数据库后端通信。

在Arch上运行:

$ sudo pacman -S postgresql-libs

在Debian和Ubuntu上:

$ sudo apt-get install libpq-dev

在Mac OS X上:

$ brew install postgresql

在Red Hat/CentOS/Fedora上:

$ sudo yum install postgresql-devel

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

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

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