ChatGPT解决这个技术问题 Extra ChatGPT

如何找到 pg_config 路径

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

我正在使用 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 文件夹位置。找到这条路径的任何提示?

在终端中尝试 sudo find / -name pg_config
作为 Mac OS X 用户,请始终解释您是如何安装 PostgreSQL 的。用于 OS X 的 PostgreSQL 包太多了,都有自己奇怪和令人沮丧的怪癖。自制?麦克波特? Postgres.app?从源头?教育局? ...

e
eykanal

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

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

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


现在位于 /Applications/Postgres.app/Contents/Versions/9.3/bin 中。
在 9.4 中,它位于:/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
这是否意味着每次更新我都必须记住更改版本?现在是9.5
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" 应该适用于任何最新版本。
或者简单地说,为了避免版本号:/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
w
wogsland
sudo find / -name "pg_config" -print

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


c
cpres

安装自制软件

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

然后安装postgresql

brew install postgresql

给了我这个可爱的输出:

checking for pg_config... yes

啊啊啊啊啊


D
Daniil Ryzhkov

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

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

其中 9.4 – PostgreSQL 版本。


不知道为什么这被否决了,但这是正确的-至少对于 9.3 及更高版本...
A
Afrowave

在 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

惊人。就我而言,它不在文件夹库下。它在 /Applications/Postgres.app/.... 非常感谢!
j
jkdev

总结一下——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 等来找出where the file is located


r
romainm

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

冲泡安装postgresql


z
zoe_stockholm

在mac上有同样的问题,你可能需要

冲泡安装postgresql

然后你可以运行

点安装 psycopg2

brew 将为您解决 PATH 问题

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


在 MacOS Catalina 版本 10.15.5 中为我工作。
在尝试了上述所有选项后,这里同样适用于 MacOs Mojave
M
Max Murphy

您可以使用同名目录找到 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 中列出的目录中。鉴于这种情况,然后像您展示的那样在 shell 上运行 pg_config 将无法运行出于完全相同的原因
真的 - 道歉。我在寻找路径时发现了这个并且略读了太多!
在这里唯一能帮助我获得 0 票的答案......我只能提供一张。如果它对任何人有帮助,请在 /usr/local/Cellar/postgresql/9.5.2/bin 处安装(版本 9.5.2)
b
bereket gebredingle

这是如何简单地获取 pg_config 的路径

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

c
codesage

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

/Library/PostgreSQL/<version_num>/

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

在你的 ~ 目录中创建一个 .profile

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

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


D
Deepika Anand

我用了 :

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

pip install psycopg2

K
Koleen BP

通过首先安装以下 pip 包为我工作:libpq-devpostgresql-common


..问题是关于找到一个文件夹...您正在为安装软件包增添乐趣...
U
Umang Agarwal

对于在 Apple Silicon 上寻找通过 brew 安装的 postgresql 的 pg_config 路径的人:/opt/homebrew/Cellar/postgresql/<postgres_version>/bin

对于基于 Intel 的 Mac 系统 /usr/local/Cellar/postgresql/<postgres_version>/bin(需要验证)。


c
cwwaism

对于那些使用 macOS Big Sur 并将其默认 shell 作为 Z shell 的用户,您可以将路径添加到 .zprofile 中的 py_config 二进制文件,该路径等同于 .bash_profile,如此链接 https://support.apple.com/en-us/HT208050 中所述

在将 PyCharm 与虚拟环境一起使用时,我遇到了类似的问题,在该虚拟环境中,我无法将 shell 更改为 bash 以使事情顺利进行。添加 postgres bin 路径解决了我的问题:

MacBook-Pro ~ % cat .zprofile
# Setting PATH for Postgres
PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
export PATH

然后运行它没有任何问题:

pip install psycopg2

E
E Y CD

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

/库/PostgreSQL/13/bin

在终端中执行以下命令:

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

然后

pip install psycopg2