首页 文章

如何在Python上用“pip”安装psycopg2?

提问于
浏览
449

我正在使用 virtualenv ,我需要安装"psycopg2" .

我做了以下事情:

pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

我有以下消息:

Downloading/unpacking http://pypi.python.org/packages/source/p/psycopg2/psycopg2
-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
  Downloading psycopg2-2.4.tar.gz (607Kb): 607Kb downloaded
  Running setup.py egg_info for package from http://pypi.python.org/packages/sou
rce/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160
    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'.

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in C:\Documents and Settings\anlopes\Application Data\pip\p
ip.log

我的问题,我只需要这样做以使psycopg2工作?

python setup.py build_ext --pg-config /path/to/pg_config build ...

26 回答

  • 6

    除了安装所需的包之外,我还需要手动将PostgreSQL bin目录添加到PATH .
    $vi ~/.bash_profile
    export PATH 之前添加 PATH=/usr/pgsql-9.2/bin:$PATH .
    $source ~/.bash_profile
    $pip install psycopg2

  • -1

    在Windows XP上,如果未安装postgres,则会出现此错误...

  • 3

    我在PG的下载网站上使用RedHat / CentOS存储库安装了Postgresql92 http://www.postgresql.org/download/linux/redhat/

    要获得pg_config,我必须将/usr/pgsql-9.2/bin添加到PATH .

  • 0

    我之前已经完成了这个操作,然后在Windows中首先安装到基础python安装中 .

    然后,您手动将已安装的psycopg2复制到virtualenv安装 .

    它不漂亮,但它的工作原理 .

  • 80

    我发现这篇文章正在寻找解决这个问题的Linux解决方案 .

    这个post by "goshawk"给了我解决方案:如果你在Ubuntu / Debian上运行 sudo apt-get install libpq-dev python-dev .

    更新

    由于越来越多的人发现这个答案很有用并且发布了他们自己的解决方案,这里有一个列表:

    Debian / Ubuntu

    Python 2

    sudo apt install libpq-dev python-dev
    

    Python 3

    sudo apt install libpq-dev python3-dev
    

    其他

    如果以上都不能解决您的问题,请尝试

    sudo apt install build-essential
    

    要么

    sudo apt install postgresql-server-dev-all
    
  • 1

    在CentOS上,你需要postgres开发包:

    sudo yum install python-devel postgresql-devel
    

    这至少是CentOS 6的解决方案 .

  • 0

    在Mac Mavericks上使用Postgres.app版本9.3.2.0 RC2我需要在安装Postgres后使用以下代码:

    sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin pip install psycopg2

  • 60

    如果你在Mac上,你可以使用自制软件

    brew install postgresql
    

    所有其他选项都在这里:http://www.postgresql.org/download/macosx/

    祝好运

  • 27

    我最近在Windows机器上配置了psycopg2 . 最简单的安装是使用Windows可执行二进制文件 . 你可以在http://stickpeople.com/projects/python/win-psycopg/找到它 .

    要在虚拟环境中安装本机二进制文件,请使用easy_install:

    C:\virtualenv\Scripts\> activate.bat
    (virtualenv) C:\virtualenv\Scripts\> easy_install psycopg2-2.5.win32-py2.7-pg9.2.4-release.exe
    
  • 68

    对于Python 3,你应该在Debian下使用 sudo apt-get install libpq-dev python3-dev .

  • 2

    这对我有用(On RHEL,CentOS:

    sudo yum install postgresql postgresql-devel python-devel
    

    现在包含你的postgresql二进制目录的路径和你的pip install:

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

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

    更新:对于python 3,请安装 python3-devel 而不是 python-devel

  • 16

    如果您使用的是Mac OS,则应从源代码安装PostgreSQL . 安装完成后,您需要使用以下命令添加此路径:

    export PATH=/local/pgsql/bin:$PATH
    

    或者你可以像这样追加路径:

    export PATH=.../:usr/local/pgsql/bin
    

    .profile 文件或 .zshrc 文件中 .

    这可能因操作系统而异 .

    您可以按照http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/的安装过程进行操作

  • 25

    到目前为止,答案太像魔术食谱了 . 您收到的错误告诉您pip无法找到PostgreSQL查询库的必需部分 . 可能这是因为您将它安装在操作系统的非标准位置,这就是消息建议使用--pg-config选项的原因 .

    但更常见的原因是您根本没有安装libpq . 这通常发生在没有安装PostgreSQL服务器的机器上,因为您只想运行客户端应用程序,而不是服务器本身 . 每个OS /发行版都不同,例如在Debian / Ubuntu上你需要安装libpq-dev . 这允许您针对PostgreSQL查询库编译和链接代码 .

    大多数答案还建议安装Python开发库 . 小心 . 如果您只使用发行版安装的默认Python,那将会有效,但如果您有更新的版本,则可能会导致问题 . 如果你已经在这台机器上构建了Python,那么你已经拥有了编译C / C库以与Python接口所需的开发库 . 只要您使用正确的pip版本,安装在与python二进制文件相同的bin文件夹中的那个版本,那么您就已经完成了设置 . 无需安装旧版本 .

  • 668

    Debian/Ubuntu

    首先安装并构建 psycopg2 包的依赖项:

    # apt-get build-dep python-psycopg2
    

    然后在您的虚拟环境中编译并安装 psycopg2 模块:

    (env)$ pip install psycopg2
    
  • 5

    我已经和它斗争了好几天,并且最终想出了如何让“pip install psycopg2”命令在Windows(运行Cygwin)中的virtualenv中运行 .

    我正在点击“未找到pg_config可执行文件” . 错误,但我已经在Windows中下载并安装了postgres . 它也安装在Cygwin中;在Cygwin中运行“which pg_config”给出了“/ usr / bin / pg_config”,并且运行“pg_config”给出了合理的输出 - 但是与Cygwin一起安装的版本是:

    VERSION = PostgreSQL 8.2.11

    这不适用于当前版本的psycopg2,它似乎至少需要9.1 . 当我将“c:\ Program Files \ PostgreSQL \ 9.2 \ bin”添加到我的Windows路径时,Cygwin pip安装程序能够找到正确版本的PostgreSQL,并且我能够使用pip成功安装模块 . (无论如何,这可能比使用Cygwin版本的PostgreSQL更好,因为本机版本会跑得快得多) .

  • 0

    在Fedora 24上:对于Python 3.x.

    sudo dnf install postgresql-devel python3-devel
    
    sudo dnf install redhat-rpm-config
    

    激活您的虚拟环境:

    pip install psycopg2
    
  • 2

    对于低级Windows用户来说,不得不从下面的链接安装psycopg2,只需将其安装到您设置的任何Python安装中 . 它会将名为“psycopg2”的文件夹放在python安装的site-packages文件夹中 .

    之后,只需将该文件夹复制到virtualenv的site-packages目录中,就可以了 .

    这里是你可以找到安装psycopg2的可执行文件的链接

    http://www.lfd.uci.edu/~gohlke/pythonlibs/

  • 1

    在OpenSUSE 13.2上,这修复了它:

    sudo zypper in postgresql-devel
    
  • 1

    我可以通过以下命令将它安装在Windows机器中并使用带有python 2.7的Anaconda / Spyder:

    !pip install psycopg2
    

    然后 Build 与数据库的连接:

    import psycopg2
     conn = psycopg2.connect(dbname='dbname',host='host_name',port='port_number', user='user_name', password='password')
    
  • 111

    Arch 基础分布中:

    sudo pacman -S python-psycopg2
    pip2 install psycopg2  # Use pip or pip3 to python3
    
  • 13

    Psycopg2取决于Postgres库 . 在Ubuntu上您可以使用:

    apt-get install libpq-dev
    

    然后:

    pip install psycopg2
    
  • 0

    在Ubuntu上我只需要postgres开发包:

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

    *在virtualenv中测试过

  • 1

    在OSX 10.11.6(El Capitan)

    brew install postgresql
    PATH=$PATH:/Library/PostgreSQL/9.4/bin pip install psycopg2
    
  • 21

    在OSX上使用macports:

    sudo port install postgresql96
    export PATH=/opt/local/lib/postgresql96/bin:$PATH
    
  • 3

    如果pip不起作用,你可以从这里下载.whl文件https://pypi.python.org/pypi/psycopg2解压缩..比 python setup.py install

  • 1

    Gentoo 中尝试这个:

    emerge dev-libs/libpqxx
    

相关问题