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

时间:2011-03-24 14:33:56

标签: python virtualenv psycopg2 pip

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

35 个答案:

答案 0 :(得分:691)

我发现这篇文章正在寻找解决这个问题的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 :(得分:114)

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

sudo yum install python-devel postgresql-devel

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

答案 2 :(得分:80)

On Mac Mavericks with Postgres.app version 9.3.2.0 RC2我需要在安装Postgres之后使用以下代码:

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

答案 3 :(得分:72)

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

brew install postgresql

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

祝你好运

答案 4 :(得分:61)

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

答案 5 :(得分:27)

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

答案 6 :(得分:26)

这对我有用(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

答案 7 :(得分:21)

如果您使用的是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/

的安装流程进行操作

答案 8 :(得分:16)

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

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

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

答案 9 :(得分:13)

Debian/Ubuntu

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

# apt-get build-dep python-psycopg2

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

(env)$ pip install psycopg2

答案 10 :(得分:6)

我已经在你首先安装到基础python安装的windows中之前完成了这个。

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

它不漂亮,但它有效。

答案 11 :(得分:5)

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

答案 12 :(得分:3)

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

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

答案 13 :(得分:3)

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

答案 14 :(得分:2)

我已经和它斗争了好几天,终于想出了如何让“pip install psycopg2”命令在Windows中的virtualenv中运行(运行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更好,因为本机版本运行得更快)。

答案 15 :(得分:2)

对于MacOS,

使用下面的命令安装psycopg2,就像魅力一样!!

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

答案 16 :(得分:2)

在Fedora 24上:对于Python 3.x

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

激活您的虚拟环境:

pip install psycopg2

答案 17 :(得分:1)

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

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

答案 18 :(得分:1)

Arch 基本发行版中:

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

答案 19 :(得分:1)

在OpenSUSE 13.2上,修复了它:

sudo zypper in postgresql-devel 

答案 20 :(得分:1)

Psycopg2取决于Postgres图书馆。 在Ubuntu上您可以使用:

apt-get install libpq-dev

然后:

pip install psycopg2

答案 21 :(得分:1)

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

之后,只需将该文件夹复制到virtualenv的site-packages目录中即可。

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

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

答案 22 :(得分:0)

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

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

*在virtualenv中测试

答案 23 :(得分:0)

在OSX 10.11.6(El Capitan)

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

答案 24 :(得分:0)

在带有macports的OSX上:

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

答案 25 :(得分:0)

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

答案 26 :(得分:0)

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

如果您使用的是Linux(可能还有其他系统,但我无法从经验上讲),那么在安装dev软件包时,您需要确保准确了解所运行的python版本。

例如,当我使用命令时:

Navigation Component

在尝试操作

时,我仍然遇到相同的错误
sudo apt-get install python3-dev

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

pip install psycopg2

执行此操作后,我再也不会遇到任何问题。显然,如果您使用的是python 3.5版,则可以将7更改为5。

答案 27 :(得分:0)

我遇到了这个问题,主要原因是安装了2个相同的版本。一种是postgres.app,另一种是HomeBrew。

如果您选择仅保留APP:

brew unlink postgresql
pip3 install psycopg2

答案 28 :(得分:0)

在macOS Mojave上,请确保您使用适用于我的Command Line Tools 10.3进行了最新更新-使用Software Update对其进行了更新,Mojave上的Command Line Tools的先前版本不适用于我。

答案 29 :(得分:0)

在运行 pip install psycopg2

之前,请确保已安装Postgres并更新了PATH。
export PATH="$PATH:/Applications/Postgres.app/Contents/Versions/12/bin"

答案 30 :(得分:0)

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

pip install psycopg2==2.7.5

答案 31 :(得分:0)

在 MacOS 上安装

以下是在 Mac OS Big Sur 上安装 psycopg2 时对我和我的团队成员有用的步骤,并且我们已经对 Big Sur 进行了广泛的测试。在开始之前,请确保您已安装 Xcode 命令行工具。如果没有,请从 Apple Developer 站点安装它。以下步骤假设您已安装自制软件。如果您还没有安装自制软件,请安装它。最后但并非最不重要的是,它还假设您已经在您的系统中安装了 PostgreSQL,如果没有,请安装它。不同的人有不同的偏好,但 official PostgreSQL site via Enterprise DB installer 上的默认安装方法是大多数人的最佳方法。

  • 通过以下方式在您的 pg_config 文件中建立到 .zshrc 文件的链接:
    export PATH="$PATH:/Library/PostgreSQL/12/bin:$PATH" .这样您就可以与 pg_config 文件夹中的 /Library/PostgreSQL/12/bin 文件建立链接。因此,如果您通过其他方式安装 PostgreSQL,例如 Postgres.app 或通过自制软件安装 Postgres,那么您需要在 .zshrc 文件中包含 pg_config 文件夹中 bin 文件的链接psycopg2 的 PostgreSQL 安装依赖于此。

  • 使用命令 brew install openssl 通过 Homebrew 安装 OpenSSL。这样做的原因是作为 libpq 基础的库 psycopg2 使用了 openssl - psycopg2 不直接使用它。安装后,将以下命令放入您的 .zshrc 文件中:

    • 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"
      通过这样做,您将在您的目录中创建必要的链接。这些命令是在您安装 openssl 时由 brew 建议的,并且是直接从那里获取的。
  • 现在是最重要的步骤,即使用命令 libpq 安装 brew install libpq。这将安装 libpq 库。 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 库创建所有必要的链接。
  • 现在重新启动终端或使用以下命令 source ~/.zshrc

    即使您在 conda 环境中工作,这也有效。

    注意pip install psycopg2-binary 应该避免,因为 as per the developers of the psycopg2 library
<块引用>

不鼓励在生产中使用 -binary 包,因为过去证明它们在多线程环境中不可靠。这可能已在较新的版本中修复,但我从未设法重现该故障。

答案 32 :(得分:0)

我只在 Python2 上遇到过这个错误。我立即将我的虚拟环境升级到 Python3.8,错误没有了。

答案 33 :(得分:-1)

Gentoo

中试试
emerge dev-libs/libpqxx

答案 34 :(得分:-1)

在Windows上是这样工作的
在虚拟环境中通过pip安装flask之后,在命令提示符下运行此命令

>pip install psycopg2

选中this