首页 文章

找不到pg_config可执行文件

提问于
浏览
481

我在安装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_config路径添加到 setup.cfg 文件并使用我从其网站(http://initd.org/psycopg/)下载的源文件构建它,我收到以下错误消息!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

但实际上它就是!!!

我对这些错误感到困惑 . 有人可以帮忙吗?

顺便说一下,我 sudo 所有的命令 . 我也在RHEL 5.5上 .

27 回答

  • 154

    pg_config 位于 postgresql-devel (Debian / Ubuntu为 libpq-dev ,Cygwin / Babun为 libpq-devel . )

  • 7

    在Mac OS X上,我使用homebrew包管理器解决了它

    brew install postgresql
    
  • 0

    你安装了python-dev吗?如果您已经拥有,请尝试安装libpq-dev

    sudo apt-get install libpq-dev python-dev
    

    来自文章:How to install psycopg2 under virtualenv

  • 2

    也在OSX上 . 从http://postgresapp.com/安装了Postgress.app,但遇到了同样的问题 .

    我在该应用程序的内容中找到 pg_config 并将目录添加到 $PATH .

    那是在 /Applications/Postgres.app/Contents/Versions/latest/bin . 所以这有效: export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" .

  • 26
    apt-get build-dep python-psycopg2
    
  • 18

    总而言之,我也遇到了完全相同的问题 . 在阅读了很多stackoverflow帖子和在线博客后,对我有用的最终解决方案是:

    1)在安装psycopg2之前,应安装PostgreSQL(开发版或任何稳定版) .

    2)pg_config文件(此文件通常位于PostgreSQL安装文件夹的bin文件夹中)必须在安装psycopg2之前显式设置PATH . 就我而言,PostgreSQL的安装路径是:

    /opt/local/lib/postgresql91/
    

    所以为了显式设置pg_config文件的PATH,我在终端中输入了以下命令:

    PATH=$PATH:/opt/local/lib/postgresql91/bin/
    

    此命令确保当您尝试pip install psycopg2时,它会自动找到PATH到pg_config .

    我还在blog上发布了跟踪及其解决方案的完整错误,您可能想要参考 . 它适用于Mac OS X但pg_config PATH问题是通用的,也适用于Linux .

  • 17

    sudo apt-get install libpq-dev 在Ubuntu 15.4上为我工作

  • 5

    在alpine,包含 pg_config 的库是postgresql-dev . 要安装,请运行:

    apk add postgresql-dev
    
  • 5

    更新/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
    
  • 9

    对于那些运行OS X的人来说,这个解决方案对我有用:

    1)安装Postgres.app:

    http://www.postgresql.org/download/macosx/

    2)然后打开终端并运行此命令,用Postgres版本号替换它所说的{}:

    export PATH = $ PATH:/Applications/Postgres.app/Contents/Versions / {} / bin

    例如

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

  • 4

    这对CentOS有用,首先安装:

    sudo yum install postgresql postgresql-devel python-devel
    

    在Ubuntu上只使用equivilent apt-get包 .

    sudo apt-get install postgresql postgresql-dev python-dev
    

    现在,在你的pip install中包含postgresql二进制文件的路径,这应该适用于基于Debain或RHEL的Linux:

    sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2
    

    确保包含正确的路径 . 就这样 :)

  • 53

    Ali的解决方案对我有用,但我无法找到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 .

  • 1

    尝试将其添加到PATH:

    PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2
    
  • 10

    在安装psycopg2之前,您需要升级您的点 . 使用此命令

    pip install --upgrade pip
    
  • 7

    刚解决了Cent OS 7中的问题:

    export PATH=$PATH:/usr/pgsql-9.5/bin
    

    确保您的PostgreSql版本与上面的正确版本匹配 .

  • 18

    在Windows上,您可能需要安装Windows port of Psycopg,这是psycopg's documentation中推荐的 .

  • 4

    在Linux Mint sudo apt-get install libpq-dev 为我工作 .

  • 1

    sudo yum install postgresql-devel(centos6X)

    pip install psycopg2 == 2.5.2

  • 36

    这里,对于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 .

  • 222

    在Mac OS X上,如果您使用的是Postgres App(http://postgresapp.com/):

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

    无需在此命令中指定Postgres的版本 . 它总是指向最新的 .

    并做

    pip install psycopg2
    

    P.S:如果更改未反映您可能需要重新启动终端/命令提示符

    Source

  • 517

    这对我有用:

    sudo apt-get install libpq-dev python-dev
    
  • 15

    这就是我设法安装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
    
  • 1

    我很确定你遇到了同样的“问题”,因此我会为你提供极其简单的解决方案......

    在您的情况下,您需要添加到$ 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
    

    可能为时已晚,但仍然是最简单的解决方案 .

    后期编辑:

    在进一步的测试中,我发现如果你最初在表单中添加pg_config的路径

    /usr/pgsql-9.1/bin
    

    (在..... / bin之后没有/ pg_config)并运行pip install命令它会工作 .

    但是,如果您决定按照指示运行python setup.py,则必须在..... / bin之后使用/ pg_config指定路径,即

    python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build
    
  • 16

    在Gentoo上您必须执行以下操作

    # Install postgresql client libraries
    sudo emerge postgresql-base
    
  • 1

    对于CentOS / RedHat,请确保 /etc/alternatives/pgsql-pg_config 是一个未破坏的符号链接

  • 26

    安装python-psycopg2在Arch Linux上为我解决了这个问题:

    pacman -S python-psycopg2
    
  • 29

    我发现这个页面提供了在我的mac上安装PostgreSQL的最佳说明,之后pip install命令工作正常:

    https://www.codefellows.org/blog/three-battle-tested-ways-to-install-postgresql

相关问题