如何找到pg_config路径


75

在这里完成新手操作,尝试将Django设置为可与PostgreSQL一起使用。

我正在使用Mac OS X 10.6.8。我还安装了PostgreSQL 9.3

pip install psycopg2在终端中运行时,出现以下错误

Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py (path:/private/var/folders/A9/A99cs6x0FNusPejCVkYNTE+++TI/-Tmp-/pip_build_bengorman/psycopg2/setup.py) egg_info for package 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'.
    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info/psycopg2.egg-info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO

writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt

writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found



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'.

我已经看到了很多关于
如何使用python上的pip来安装psycopg2 的帖子
pg-config-executable-notfound

但是我不知道如何找到包含pg_config的bin文件夹位置。找到这条路的任何提示吗?


5
尝试sudo find / -name pg_config在终端。
twil 2014年

3
作为Mac OS X用户,请始终说明您如何安装PostgreSQL。PostgreSQL的OS X包种类繁多,都有奇异而令人沮丧的怪癖。家酿?MacPorts?Postgres.app?从源头上?EDB?...
克雷格·林格2014年

Answers:


107

我建议您尝试使用Postgres.app。(http://postgresapp.com)这样,您可以轻松地在Mac上打开和关闭Postgres。完成后,.profile通过添加以下内容,将Postgres的路径添加到文件中:

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

只有将Postgres添加到路径后,您才能尝试psycopg2在虚拟环境中(使用pip)或全局站点包中进行安装。


14
这是现在/Applications/Postgres.app/Contents/Versions/9.3/bin
克里斯vCB 2014年

1
在9.4中,
David Watson

这是否意味着每次更新我都必须记住要更改版本?现在是9.5
mp3por

如果按上述方式安装了该应用程序,则文件现在位于/Library/PostgreSQL/9.5/bin/pg_configMacOS X 10.11上。
Afrowave

7
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"应该适用于任何最新版本。
阿迪达斯手足炎

39
sudo find / -name "pg_config" -print

答案是我的配置中的/Library/PostgreSQL/9.1/bin/pg_config(MAC Maverick)


28

Postgres.app最近更新了。现在,它将所有二进制文件存储在“版本”文件夹中

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

9.4 – PostgreSQL版本。


3
不知道为什么要拒​​绝投票,但这是正确的-至少适用于9.3及更高版本……
理查德2014年

24

安装自制软件

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

然后安装postgresql

brew install postgresql

给了我这个可爱的输出:

checking for pg_config... yes

啊耶


15

在MacOS X 10.11上安装了当前的PostgreSQL应用后,这就是pg_config文件所在的位置/Library/PostgreSQL/9.5/bin/pg_config

然后在终端上:

    $ export PG_HOME=/Library/PostgreSQL/9.5
    $ export PATH=$PATH:$PG_HOME/bin

这会将路径放入您正在使用的任何终端的.profile中。

然后在您的环境中(假设您正在使用virtualenv)安装psycopg2:

    $ pip install psycopg2

您应该查看之前是否已下载:

    Collecting psycopg2
      Using cached psycopg2-2.6.1.tar.gz
    Installing collected packages: psycopg2
      Running setup.py install for psycopg2 ... done
    Successfully installed psycopg2-2.6.1

1
惊人。就我而言,它不在文件夹库下。它在/Applications/Postgres.app / .....非常感谢!
萨尔瓦,2016年

8

总结-PostgreSQL根据版本号和安装方法在不同位置安装其文件(包括二进制文件或可执行文件)。

一些可能性:

/usr/local/bin/
/Library/PostgreSQL/9.2/bin/
/Applications/Postgres93.app/Contents/MacOS/bin/
/Applications/Postgres.app/Contents/Versions/9.3/bin/

难怪人们会感到困惑!

另外,如果你的$ PATH环境变量包括到包含可执行文件的目录路径(证实这一点,使用echo $PATH命令行),那么你可以跑which pg_configwhich psql等找出该文件所在


6

我有完全相同的错误,但是我通过brew安装了postgreSQL并重新运行了原始命令,它运行得很完美:

brew安装postgresql


3

您可以pg_config使用名称来查找目录:

$ pg_config --bindir
/usr/lib/postgresql/9.1/bin
$ 

在Mac和Debian上测试。唯一的麻烦是我看不到如何找到安装在同一台机器上的不同版本的postgres的bindir。不过,这很容易猜到!:-)

注意:我在Debian上将pg_config更新为9.5:

sudo apt-get install postgresql-server-dev-9.5

您不了解问题是什么。OP出现错误,因为pg_config它不在中列出的目录中PATH。在这种情况下,由于完全相同的原因,pg_config无法像您演示的那样在shell上运行。
路易斯

正确-道歉。我在寻找路径时发现了这一点,略略浏览了一下!
Max Murphy

在这里,唯一可以帮助我获得0票的答案。我只能提供一张。如果它对任何人有帮助,请在/usr/local/Cellar/postgresql/9.5.2/bin
dave

3

在Mac上也有同样的问题,您可能需要

brew安装postgresql

那你就可以跑

pip安装psycopg2

Brew将为您解决PATH问题

此解决方案至少对我有用。


在MacOS Catalina 10.15.5版中对我有效。
Mohit Pandey

在尝试了上述选项之后,这里在MacOs Mojave中为我工作了
Ravikiran butti 20'July

1

检查/Library/PostgreSQL/9.3/bin,您应该找到pg_config

IE浏览器 /Library/PostgreSQL/<version_num>/

ps:如果您认为有必要满足pg的需要,可以执行以下操作-

在您的〜目录中创建一个.profile

export PG_HOME=/Library/PostgreSQL/9.3
export PATH=$PATH:$PG_HOME/bin

现在,您可以在终端上使用psqlpostgres命令,并安装psycopg2或任何其他依赖项而不会出现问题,此外,您始终可以随时ls $PG_HOME/bin查看pg_dir。



1

这就是简单地获得 pg_config

$ which pg_config                 // prints the directory location 
/usr/bin/pg_config

1

通过安装以下第一个pip软件包为我工作:libpq-devpostgresql-common


1
..问题是关于找到一个文件夹...您正在增加安装软件包的乐趣...
ZF007
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.