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


当前回答

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

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

其他回答

一个简单的解决方法是

pip install psycopg2==2.7.5
apt-get build-dep python-psycopg2

这就是我安装psycopg2的方法

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

MAC用户

通过HomeBrew添加postgresql包后,可能需要添加openssl路径变量-

出口LIBRARY_PATH = $ LIBRARY_PATH: / usr /地方/ opt / openssl / lib /

然后,您可以再次安装psycopg2包,它应该可以工作。

综上所述,我也遇到了同样的问题。在阅读了大量stackoverflow的帖子和在线博客后,最终对我有效的解决方案是:

1)在安装psycopg2之前,应该先安装PostgreSQL(开发版或任何稳定版)。

2) pg_config文件(该文件通常位于PostgreSQL安装文件夹的bin文件夹中)PATH必须在安装psycopg2之前显式设置。在我的例子中,PostgreSQL的安装路径是:

/opt/local/lib/postgresql91/

所以为了显式地设置pg_config文件的PATH,我在我的终端输入了以下命令:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

该命令确保当您尝试pip安装psycopg2时,它这次将自动找到pg_config的PATH。

我还在我的博客上发布了一个完整的错误跟踪和解决方案,你可能想要参考。它适用于Mac OS X,但pg_config PATH问题是通用的,也适用于Linux。