如何查找pg_config路径

时间:2014-01-12 20:20:44

标签: python django macos postgresql

在这里完成新手,尝试设置Django以使用ProstgreSQL。

我正在使用mac osx 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'.

我在这上看过很多帖子 how-to-install-psycopg2-with-pip-on-python
pg-config-executable-not-found

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

14 个答案:

答案 0 :(得分:88)

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

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

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

答案 1 :(得分:28)

sudo find / -name "pg_config" -print

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

答案 2 :(得分:26)

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

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

其中9.4 - PostgreSQL的版本。

答案 3 :(得分:16)

安装homebrew

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

然后安装postgresql

brew install postgresql

给了我这个可爱的输出:

checking for pg_config... yes

啊啊啊啊啊啊啊

答案 4 :(得分:11)

在MacOS X 10.11上安装当前的PostgreSQL应用程序后,这就是pg_config文件为if (scanner.hasNextFloat()) { System.out.println("float"); float myValue = scanner.nextFloat(); // do something with the float myValue }else if (scanner.hasNextInt()) { System.out.println("int") int myValue = scanner.nextInt(); // do something with the int myValue } else { // fallback on string String myValue = scanner.next(); // do something with the string myValue } 的位置。

然后在终端上:

/Library/PostgreSQL/9.5/bin/pg_config

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

在您的环境中(假设您使用的是 $ export PG_HOME=/Library/PostgreSQL/9.5 $ export PATH=$PATH:$PG_HOME/bin ),然后安装psycopg2:

virtualenv

您应该先看看是否已经下载过它:

    $ pip install psycopg2

答案 5 :(得分:7)

总结一下 - 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_config,{{ 1}}等找出where the file is located

答案 6 :(得分:5)

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

  

brew install postgresql

答案 7 :(得分:2)

您可以使用其名称找到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

答案 8 :(得分:1)

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

即。 /Library/PostgreSQL/<version_num>/

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

在〜目录中创建一个.profile

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

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

答案 9 :(得分:1)

我用过:

export PATH=$PATH:/Library/PostgreSQL/9.6/bin

pip install psycopg2

答案 10 :(得分:0)

在Mac上遇到同样的问题,你可能需要

  

brew install postgresql

然后你可以运行

  

pip install psycopg2

brew将为您解决PATH问题

这个解决方案至少对我有用。

答案 11 :(得分:0)

这是简单获取pg_config路径的方法

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

在我的情况下 (MacOS) pg_config 的路径

/Library/PostgreSQL/13/bin

在终端中执行以下操作:

PATH="/Library/PostgreSQL/13/bin:$PATH"

然后

pip install psycopg2