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

2025-01-21 09:01:00
admin
原创
97
摘要:问题描述:我正在使用virtualenv并且需要安装“psycopg2”。我已完成以下操作:pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282d...

问题描述:

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

writing pip-egg-infopsycopg2.egg-infoPKG-INFO

writing top-level names to pip-egg-infopsycopg2.egg-info    op_level.txt

writing dependency_links to pip-egg-infopsycopg2.egg-infodependency_links.txt

writing manifest file 'pip-egg-infopsycopg2.egg-infoSOURCES.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 SettingsanlopesApplication Datapipp
ip.log

我的问题是,我只需要这样做就可以让 psycopg2 工作吗?

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

解决方案 1:

注意:不久前,PyPI 中提供了适用于 Windows 的二进制轮子,因此这对 Windows 用户来说不再是问题。以下是针对 Linux、Mac 用户的解决方案,因为很多用户都是通过网络搜索找到这篇文章的。


选项 1

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

pip install psycopg2-binary

选项 2

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

Debian/Ubuntu

Python 版本命令笔记
默认 Python 3sudo apt install libpq-dev python3-dev
Python 3.xsudo apt install libpq-dev python3.x-dev代替x命令
Python 2sudo apt install libpq-dev python-dev

如果这还不够,你可能还需要安装

sudo apt install build-essential

或者

sudo apt install postgresql-server-dev-all

在再次安装 psycopg2 之前也是如此。

CentOS 6

参见Banjer 的回答

macOS

参见nichochar 的回答

解决方案 2:

在 CentOS 上,您需要 postgres dev 包:

sudo yum install python-devel postgresql-devel

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

解决方案 3:

如果你用的是 Mac,你可以使用 Homebrew

brew install postgresql

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

解决方案 4:

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

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

解决方案 5:

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

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

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

解决方案 6:

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

解决方案 7:

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

解决方案 8:

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

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

大多数答案还建议安装 Python 开发库。请小心。如果您仅使用发行版安装的默认 Python,那么这将可行,但如果您使用的是较新的版本,则可能会导致问题。如果您已在此机器上构建了 Python,那么您已经拥有编译 C/C++ 库以与 Python 交互所需的开发库。只要您使用正确的 pip 版本(安装在与 python 二进制文件相同的 bin 文件夹中的版本),那么一切就绪了。无需安装旧版本。

解决方案 9:

如果你使用 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/关注安装过程

解决方案 10:

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

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

解决方案 11:

Debian/Ubuntu

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

# apt-get build-dep python-psycopg2

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

(env)$ pip install psycopg2

解决方案 12:

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

如果您使用的是 Linux(也可能是其他系统,但我无法从经验中得知),则需要确保在安装 dev 包时准确了解您正在运行的 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。

解决方案 13:

我以前这样做过,在 Windows 中首先安装到基础 python 安装中。

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

虽然不太美观,但是却很管用。

解决方案 14:

除了安装所需的软件包之外,我还需要手动将 PostgreSQL bin 目录添加到 PATH。在 之前

$vi ~/.bash_profile

添加。PATH=/usr/pgsql-9.2/bin:$PATH`export PATH`

$source ~/.bash_profile

$pip install psycopg2

解决方案 15:

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

apt-get install libpq-dev

然后:

pip install psycopg2

解决方案 16:

对于 MacOS,

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

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

解决方案 17:

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

解决方案 18:

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

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

解决方案 19:

在 Fedora 24 上:对于 Python 3.x

sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

激活您的虚拟环境:

pip install psycopg2

解决方案 20:

我已经与此斗争了好几天,最后终于弄清楚了如何让“pip install psycopg2”命令在 Windows(运行 Cygwin)中的虚拟环境中运行。

我遇到了“未找到 pg_config 可执行文件”错误,但我已经在 Windows 中下载并安装了 postgres。它也安装在 Cygwin 中;在 Cygwin 中运行“which pg_config”给出了“/usr/bin/pg_config”,运行“pg_config”给出了合理的输出——然而,使用 Cygwin 安装的版本是:

版本 = PostgreSQL 8.2.11

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

解决方案 21:

在 OpenSUSE 13.2 上,此方法修复了该问题:

sudo zypper in postgresql-devel 

解决方案 22:

Arch基础发行版中:

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

解决方案 23:

对于 FEDORA 用户:

libpq-dev是依赖项之一,但是在安装中包的命名方式如下:libpq-devel

因此这应该可以解决 Fedora 的问题:

sudo yum install libpq-devel

解决方案 24:

对于低端 Windows 用户,他们不得不从下面的链接安装 psycopg2,只需将其安装到您已设置的任何 Python 安装中即可。它会将名为“psycopg2”的文件夹放置在 Python 安装的 site-packages 文件夹中。

之后,只需将该文件夹复制到虚拟环境的 site-packages 目录,就不会遇到任何问题。

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

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

解决方案 25:

在 Ubuntu 上,我只需要 postgres dev 包:

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

*在虚拟环境中测试

解决方案 26:

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

 !pip install psycopg2

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

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

解决方案 27:

在 OSX 10.11.6 (El Capitan) 上

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

解决方案 28:

在装有 macports 的 OSX 上:

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

解决方案 29:

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

解决方案 30:

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

如果您选择仅保留APP:

brew unlink postgresql
pip3 install psycopg2
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用