找不到pg_config可执行文件

问题描述 投票:545回答:29

我在安装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_config路径添加到setup.cfg文件并使用我从他们的网站(http://initd.org/psycopg/)下载的源文件构建它,我收到以下错误消息!

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

但实际上它就是!!!

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

顺便说一句,我sudo所有的命令。我也在RHEL 5.5上。

python pip psycopg2
29个回答
607
投票

pg_configpostgresql-devel(在Debian / Ubuntu的libpq-dev,在Cygwin / Babun的libpq-devel。)


22
投票

在Linux Mint上,sudo apt-get install libpq-dev为我工作。


19
投票

更新/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

18
投票

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

1)安装Postgres.app:

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

2)然后打开终端并运行此命令,用Postgres版本号替换{{version}}所在的位置:

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

EG

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


17
投票

你应该在Ubuntu上添加Postgres中使用的python需求。跑:

sudo apt-get install libpq-dev python-dev

16
投票

Ali的解决方案对我有用,但我无法找到bin文件夹位置。在Mac OS X上找到路径的快捷方法是打开psql(顶部菜单栏中有一个快速链接)。这将打开一个单独的终端窗口,在第二行,Postgres安装的路径将如下所示:

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

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

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

或者对于较新版本:

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

然后安装psycopg2。


15
投票

尝试将其添加到PATH:

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

10
投票

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

pip install --upgrade pip

9
投票

刚解决了Cent OS 7中的问题:

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

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


7
投票

在Windows上,您可能需要安装Windows port of Psycopg中推荐的psycopg's documentation


6
投票

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

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

无需在此命令中指定Postgres的版本。它总是指向最新的。

并做

pip install psycopg2

P.S:如果更改未反映您可能需要重新启动终端/命令提示符

Source


270
投票

在Mac OS X上,我使用homebrew包管理器解决了它

brew install postgresql

5
投票

sudo yum install postgresql-devel(centos6X)

pip install psycopg2 == 2.5.2


5
投票

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


2
投票

这就是我设法安装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 .

1
投票

我很确定你遇到了同样的“问题”,因此我会为你提供极其简单的解决方案......

在您的情况下,您需要添加到$ 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

可能为时已晚,但仍然是最简单的解决方案。

后期编辑:

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

/usr/pgsql-9.1/bin

(在..... / bin之后没有/ pg_config)并运行pip install命令它会工作。

但是,如果您决定按照指示运行python setup.py,则必须在..... / bin之后使用/ pg_config指定路径,即

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

1
投票

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

# Install postgresql client libraries
sudo emerge postgresql-base

1
投票

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


1
投票

在Arch Linux上安装python-psycopg2解决了它:

pacman -S python-psycopg2

0
投票

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

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


0
投票

在MacOS上,最简单的方法是将正确的二进制文件符号链接到Postgres包中。

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

这是相当无害的,如果需要,所有应用程序都可以在系统范围内使用它。


-2
投票

在MAC Mojave上,如果你使用brew安装它,那么就做brew info <your postgres>

它将显示您应该设置的所有环境变量,只需复制粘贴这些命令,重新启动shell就可以了!


173
投票

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

sudo apt-get install libpq-dev python-dev

来自文章:How to install psycopg2 under virtualenv


62
投票

也在OSX上。安装了来自http://postgresapp.com/的Postgress.app,但遇到了同样的问题。

我在该应用程序的内容中找到了pg_config并将dir添加到$PATH

那是在/Applications/Postgres.app/Contents/Versions/latest/bin。所以这有效:export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"


38
投票

在高山上,含有pg_config的图书馆是postgresql-dev。要安装,请运行:

apk add postgresql-dev

36
投票
apt-get build-dep python-psycopg2

29
投票

总而言之,我也遇到了完全相同的问题。在阅读了很多stackoverflow帖子和在线博客之后,对我有用的最终解决方案是这样的:

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

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

/opt/local/lib/postgresql91/

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

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

此命令确保当您尝试pip install psycopg2时,它会自动找到PATH到pg_config。

我还在我的blog上发布了跟踪及其解决方案的完整错误,您可能需要参考。它适用于Mac OS X但pg_config PATH问题是通用的,也适用于Linux。


29
投票

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


24
投票

这对CentOS有用,首先安装:

sudo yum install postgresql postgresql-devel python-devel

在Ubuntu上只使用等效的apt-get包。

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

现在在你的pip install中包含postgresql二进制文件的路径,这应该适用于基于Debain或RHEL的Linux:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.