没有findpg_config可执行文件

我在安装psycopg2时遇到问题。 当我尝试pip install 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_configpath添加到setup.cfg文件中,并使用从其网站( http://initd.org/psycopg/ )下载的源文件构build它,并得到以下错误消息!

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

但它实际上是在那里!

我对这些错误感到困惑。 任何人都可以帮忙吗?

顺便说一下,我sudo所有的命令。 另外我在RHEL 5.5上。

pg_config位于postgresql-devel (Debian / Ubuntu中的libpq-dev ,Cygwin / Babun上的libpq-devel )。

在Mac OS X上,我解决了它

 brew install postgresql 

你有没有安装python-dev? 如果您已经拥有,请尝试安装libpq-dev

 sudo apt-get install libpq-dev python-dev 

从文章: 如何在virtualenv下安装psycopg2

也在OSX上。 从http://postgresapp.com/安装Postgress.app,但有同样的问题。;

我在该应用程序的内容中find了pg_config ,并将该目录添加到$PATH

它在/Applications/Postgres.app/Contents/Versions/latest/bin 。 所以这工作: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

 apt-get build-dep python-psycopg2 

总而言之,我也遇到了完全一样的问题。 阅读了很多的stackoverflowpost和在线博客后,最后的解决scheme是这样的:

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

2)pg_config文件(该文件通常驻留在PostgreSQL安装文件夹的bin文件夹中)在安装psycopg2之前,必须明确地设置PATH。 就我而言,PostgreSQL的安装path是:

 /opt/local/lib/postgresql91/ 

所以为了明确设置pg_config文件的path,我在terminalinput了以下命令:

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

这个命令可以确保当你尝试pip安装psycopg2时,它会自动find这个pg_config的PATH。

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

sudo apt-get install libpq-dev在Ubuntu 15.4上为我工作

UPDATE /etc/yum.repos.d/CentOS-Base.repo,[base]和[updates]部分
ADD exclude = 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 

对于那些运行OS X的人来说,这个解决scheme适用于我:

1)安装Postgres.app:

http://www.postgresql.org/download/macosx/

2)然后打开terminal并运行这个命令,用Postgres版本号代替{{version}}的地方:

export PATH = $ PATH:/Applications/Postgres.app/Contents/Versions / {{version}} / bin

例如

export PATH = $ PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

这是我在CentOS上的工作,首先安装:

 sudo yum install postgresql postgresql-devel python-devel 

在Ubuntu上,只需使用equivilent apt-get软件包即可。

 sudo apt-get install postgresql postgresql-dev python-dev 

现在,包括您的pgp安装postgresql二进制目录的path,这应该适用于基于Debain或RHEL的Linux:

 sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2 

确保包含正确的path。 就这样 :)

阿里的解决scheme为我工作,但我无法findbin文件夹的位置。 在Mac OS X上快速findpath的方法是打开psql(顶部菜单栏中有一个快速链接)。 这将打开一个单独的terminal窗口,在第二行,Postgres安装的path将如下所示:

 My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit; 

您的pg_config文件位于该bin文件夹中。 因此,在安装psycopg2之前设置pg_config文件的path:

 PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/ 

或更新的版本:

 PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin 

然后安装psycopg2。

尝试将其添加到PATH:

 PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2 

刚刚在Cent OS 7中解决了这个问题:

 export PATH=$PATH:/usr/pgsql-9.5/bin 

确保你的PostgreSql版本与上面的正确版本匹配。

在安装psycopg2之前,您需要升级您的点子。 使用这个命令

 pip install --upgrade pip 

在Windows上,您可能需要安装Psycopg的Windows端口 ,这在psycopg文档中推荐。

在高山上,包含pg_config的库是postgresql-dev 。 要安装,请运行:

 apk add postgresql-dev 

sudo yum安装postgresql-devel(centos6X)

pip install psycopg2 == 2.5.2

在这里,对于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

现在pip install psycopg2将能够运行pg_config没有问题。

在Mac OS X上,如果您正在使用Postgres App( http://postgresapp.com/ ):

 export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin 

不需要在这个命令中指定Postgres的版本。 它总是指向最新的。

并做

 pip install psycopg2 

PS:如果更改不反映您可能需要重新启动terminal/命令提示符

资源

这是我设法安装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 $ python setup.py install 

这适用于我:

 sudo apt-get install libpq-dev python-dev 

我很确定你遇到了同样的问题,所以我会为你提供非常简单的解决scheme。

在你的情况下,你需要添加到$ PATH(或作为命令参数)的实际path是:

 /usr/pgsql-9.1/bin/pg_config 

 /usr/pgsql-9.1/bin 

例如,如果你之后运行python setup.py脚本,你可以像这样运行它:

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

可能太晚了,但仍然是最简单的解决scheme。

后期编辑:

在进一步的testing中,我发现如果你最初在表单中添加pg_config的path

 /usr/pgsql-9.1/bin 

(在/ bin之后没有/ pg_config),运行pip install命令就可以了。

但是,如果您决定遵循指示来运行python setup.py,则必须在….. / bin之后指定/ pg_config的path,即

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

在Gentoo上您必须执行以下操作

 # Install postgresql client libraries sudo emerge postgresql-base 

我发现这个页面提供了在我的Mac上安装PostgreSQL的最好的指导,并且pip install命令在之后完美运行:

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

在Arch Linux上安装python-psycopg2解决了这个问题:

 pacman -S python-psycopg2 

对于CentOS / RedHat,请确保/etc/alternatives/pgsql-pg_config是一个非破坏的符号链接