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

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

注意:自从一段时间以前,在PyPI中有Windows的二进制轮,所以这对Windows用户来说应该不再是一个问题。下面是Linux和Mac用户的解决方案,因为他们中的许多人是通过网络搜索找到这篇文章的。


选项1

安装psycopg2-binary PyPI包,它有适用于Linux和Mac OS的Python轮。

pip install psycopg2-binary

选项2

安装从源代码构建psycopg2包的先决条件:

Debian/Ubuntu

Python 3

sudo apt install libpq-dev python3-dev

你可能需要安装python3.8-dev或类似的程序,例如Python 3.8。

Python 2

sudo apt install libpq-dev python-dev

如果这还不够,那就试试

sudo apt install build-essential

or

sudo apt install postgresql-server-dev-all

在再次安装psycopg2之前。

CentOS 6

请看班杰的回答

操作系统

请看nichochar的回答


我之前已经这样做过,在windows中,你首先安装到你的基本python安装中。

然后,手动将已安装的psycopg2复制到virtualenv安装中。

这并不漂亮,但很有效。


在windows XP上,如果postgres没有安装,你会得到这个错误…


如果你使用Mac操作系统,你应该从源代码安装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/上跟随安装过程


我已经为此奋斗了几天,终于弄清楚如何在Windows的virtualenv中运行“pip install psycopg2”命令(运行Cygwin)。

我碰到了“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更好,因为原生版本会运行得更快)。


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


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

sudo yum install python-devel postgresql-devel

这至少是CentOS 6上的解决方案。


除了安装所需的包,我还需要手动将PostgreSQL bin目录添加到PATH中。 美元vi ~ / . bash_profile Add PATH=/usr/pgsql-9.2/bin:$PATH before export PATH。 $源~ / . bash_profile $pip安装psycopg2


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

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


如果你用的是mac电脑,你可以使用自制软件

brew install postgresql

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


在Mac Mavericks与Postgres。在安装Postgres后,我需要使用以下代码:

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


这对我来说是有效的(关于RHEL, CentOS:

sudo yum install postgresql postgresql-devel python-devel

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

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

确保包含正确的路径。就这些。

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


对于低级Windows用户来说,必须从下面的链接安装psycopg2,只需将其安装到您已安装的Python安装程序中即可。它将把名为“psycopg2”的文件夹放在python安装的site-packages文件夹中。

之后,只需将该文件夹复制到virtualenv的site-packages目录,就不会有问题了。

下面是安装psycopg2的可执行文件的链接

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


到目前为止,答案太像魔法食谱了。您收到的错误告诉您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.


Psycopg2依赖于Postgres库。 在Ubuntu上你可以使用:

apt-get install libpq-dev

然后:

pip install psycopg2

在OpenSUSE 13.2,这修复了它:

sudo zypper in postgresql-devel 

在到达Debian / Ubuntu:

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

# apt-get build-dep python-psycopg2

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

(env)$ pip install psycopg2

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

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

*在virtualenv中测试


我可以在windows机器上安装它,并通过以下命令使用Anaconda/Spyder和python 2.7:

 !pip install psycopg2

然后建立到数据库的连接:

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

在Arch基础分布中:

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

在Fedora 24上:用于Python 3.x

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

激活虚拟环境:

pip install psycopg2

OSX 10.11.6 (El Capitan)

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

在OSX上使用macports:

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

如果PIP不工作,您可以从这里下载.whl文件https://pypi.python.org/pypi/psycopg2 提取它. . 而不是python setup.py install


在安装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。


我有这个问题,主要原因是安装了2个相同的版本。postgres写的。一个是HomeBrew的。

如果您选择只保留APP:

brew unlink postgresql
pip3 install psycopg2

在macOS Mojave上,请确保您在最新更新的命令行工具10.3 -这对我有用-用软件更新更新了它,Mojave上的命令行工具的以前版本对我不起作用。


在windows上,这就是它的工作原理 在虚拟环境中通过pip安装flask后,在命令提示符上运行此命令

>pip install psycopg2

检查这个


在执行pip install psycopg2之前,请确保Postgres已安装,PATH已更新

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

每次我遇到这个问题,这似乎对我有用。

pip install psycopg2==2.7.5

For MacOS,

使用下面的命令来安装psycopg2,效果非常好!!

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2

MacOS系统安装

Following are the steps, which worked for me and my team members while installing psycopg2 on Mac OS Big Sur and which we have extensively tested for Big Sur. Before starting make sure you have the Xcode command-line tool installed. If not, then install it from the Apple Developer site. The below steps assume you have homebrew installed. If you have not installed homebrew then install it. Last but not the least, it also assumes you already have PostgreSQL installed in your system, if not then install it. Different people have different preferences but the default installation method on the official PostgreSQL site via Enterprise DB installer is the best method for the majority of people.

Put up the linkage to pg_config file in your .zshrc file by: export PATH="$PATH:/Library/PostgreSQL/12/bin:$PATH". This way you are having linkage with the pg_config file in the /Library/PostgreSQL/12/bin folder. So if your PostgreSQL installation is via other means, like Postgres.app or Postgres installation via homebrew, then you need to have in your .zshrc file the link to pg_config file from the bin folder of that PostgreSQL installation as psycopg2 relies on that. Install OpenSSL via Homebrew using the command brew install openssl. The reason for this is that libpq, the library which is the basis of psycopg2, uses openssl - psycopg2 doesn't use it directly. After installing put the following commands in your .zshrc file: export PATH="/usr/local/opt/openssl@1.1/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include" By doing this you are creating necessary linkages in your directory. These commands are suggested by brew while you install openssl and have been directly picked up from there. Now comes the most important step, which is to install libpq using the command brew install libpq. This installs libpq library. As per the documentation

libpq是C应用程序程序员到PostgreSQL的接口。libpq是一组库函数,允许客户端程序将查询传递给PostgreSQL后端服务器,并接收这些查询的结果。

使用brew Link libpq链接libpq,如果这不起作用,那么使用命令:brew Link libpq——force。 还要在.zshrc文件中放入以下export PATH="/usr/local/opt/libpq/bin:$PATH"。这将为libpq库创建所有必要的链接。 现在重新启动终端或使用以下命令源~/.zshrc。 即使在conda环境中工作,这也可以工作。 注意:pip install psycopg2-binary应该避免,因为根据psycopg2库的开发人员的说法

不鼓励在生产环境中使用-binary包,因为过去它们在多线程环境中被证明是不可靠的。这可能已经在最近的版本中修复,但我从来没有设法重现失败。


我只在Python2中遇到过这个错误。我立即将虚拟环境升级到Python3.8,错误就不再存在了。


运行下面的命令应该没问题

$ apt-get update
$ apt install python3-dev libpq-dev
$ pip3 install psycopg2

对于fedora用户:

Libpq-dev是依赖项之一,但是,在安装中应该这样命名这个包:libpq-devel

所以这应该解决了Fedora的问题:

sudo yum install libpq-devel