没有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
是一个非破坏的符号链接