我在安装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
阿里的解决方案为我工作,但我有麻烦找到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。
这里,为了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 . sh /opt/local/bin/pg_config . sh
现在pip install psycopg2将能够毫无问题地运行pg_config。