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

当前回答

在Fedora 24上:用于Python 3.x

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

激活虚拟环境:

pip install psycopg2

其他回答

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

为了获得pg_config,我必须将/usr/pgsql-9.2/bin添加到PATH。

我最近在一台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

在安装psycopg2之前,您需要安装python-dev包。

如果你在Linux(也可能是其他系统,但我没有经验)上工作,在安装开发包时,你需要确保你运行的python版本非常准确。

例如,当我使用命令:

sudo apt-get install python3-dev

我仍然遇到了同样的错误,当试图

pip install psycopg2

当我使用python 3.7时,我需要使用该命令

sudo apt-get install python3.7-dev

一旦我这样做了,我就没有遇到更多的问题。显然,如果你在python 3.5版本上,你会把7改成5。

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

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

*在virtualenv中测试

到目前为止,答案太像魔法食谱了。您收到的错误告诉您pip无法找到PostgreSQL查询库中所需的部分。这可能是因为你把它安装在一个非标准的地方,这就是为什么消息建议使用——pg-config选项。

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

Most of the answers also suggest installing a Python dev library. Be careful. If you are only using the default Python installed by your distro, that will work, but if you have a newer version, it could cause problems. If you have built Python on this machine then you already have the dev libraries needed for compiling C/C++ libraries to interface with Python. As long as you are using the correct pip version, the one installed in the same bin folder as the python binary, then you are all set. No need to install the old version.