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


当前回答

我很确定你也经历过和我一样的“问题”,因此我将为你提供一个极其简单的解决方案……

在你的例子中,你需要添加到$ path(或作为命令参数)的实际路径是:

/usr/pgsql-9.1/bin/pg_config

not

/usr/pgsql-9.1/bin

例如,如果你随后运行python setup.py脚本,你会像这样运行它:

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

也许太晚了,但仍然是最简单的解决办法。

后来编辑:

在进一步的测试中,我发现如果最初在表单中添加路径到pg_config

/usr/pgsql-9.1/bin

(...../bin后面没有/pg_config)并运行PIP install命令,它将工作。

然而,如果你决定按照指示运行python setup.py,你必须在.....之后用/pg_config指定路径/ bin。

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

其他回答

对于windows用户来说,这个问题缺乏答案。下面是我解决这个问题的方法。

首先像这样将PostgreSQL bin文件夹添加到路径变量中

set PATH=%PATH%;C:\Program Files\PostgreSQL\11\bin

用你的Postgres版本替换\11\

下一个运行

pip install pyscopg2

这至少让我出现了一个编译错误。

更新:它看起来是psycopg2库的一个问题,它的依赖关系在python 3.8中表现不太好。https://github.com/psycopg/psycopg2/issues/990

这就是我安装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,那么确保你已经在你的机器上安装了Postgresql。

我发现这个页面提供了在我的mac上安装PostgreSQL的最佳说明,pip install命令在之后完美地工作:

https://www.codefellows.org/blog/three-battle-tested-ways-to-install-postgresql

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

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