如何安装psycopg2 "pip"在Python ?

我使用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 ...
601429 次浏览

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

Note:自从一段时间以前,在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

sudo apt install postgresql-server-dev-all

在再次安装psycopg2之前。

CentOS 6

看到# EYZ0

macOS

看到# EYZ0

我之前已经这样做过,在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中 # EYZ0 < br > 在export PATH之前添加PATH=/usr/pgsql-9.2/bin:$PATH
# EYZ0 < br > # EYZ0 < / p >

我在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后,我需要使用以下代码:

# EYZ0

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

sudo yum install postgresql postgresql-devel python-devel

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

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

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

更新:对于python 3,请安装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查询库编译和链接代码。

大多数答案还建议安装Python开发库。小心些而已。如果你只使用你的发行版安装的默认Python,这是可以工作的,但如果你有一个更新的版本,它可能会导致问题。如果您已经在这台机器上构建了Python,那么您已经拥有了编译C/ c++库以与Python交互所需的开发库。只要您使用的是正确的pip版本,即安装在与python二进制文件相同的bin文件夹中的pip版本,那么您就万事俱备了。无需安装旧版本。

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

apt-get install libpq-dev

然后:

pip install psycopg2

在OpenSUSE 13.2,这修复了它:

sudo zypper in postgresql-devel

在# EYZ0:

首先安装和构建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')

基本分布中:

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

检查# EYZ0

在运行PIP安装psycopg2之前,确保Postgres已安装,PATH已更新

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

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

pip install psycopg2==2.7.5

MacOS,

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

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

MacOS系统安装

以下是在Mac OS Big Sur上安装psycopg2时对我和我的团队成员有效的步骤,我们已经为Big Sur进行了广泛的测试。在开始之前,确保你已经安装了Xcode命令行工具。如果没有,那么从苹果开发者网站安装它。下面的步骤假设您已经安装了自制程序。如果你还没有安装自制软件,那就安装吧。最后但并非最不重要的是,它还假设你已经在你的系统中安装了PostgreSQL,如果没有,那就安装它。不同的人有不同的偏好,但是对于大多数人来说,官方PostgreSQL站点通过Enterprise DB安装上的默认安装方法是最好的方法。

  • 把链接到pg_config文件在你的.zshrc文件:通过这种方式,您可以链接到.zshrc1文件夹中的pg_config文件。所以如果你的PostgreSQL是通过其他方式安装的,比如Postgres。然后你需要在你的.zshrc文件中有从PostgreSQL安装的bin文件夹中到pg_config文件的链接,因为psycopg2依赖于它。

  • 通过Homebrew使用brew install openssl命令安装OpenSSL。原因是libpq,作为psycopg2的基础的库,使用openssl - psycopg2没有直接使用它。安装完成后,在.zshrc文件中输入以下命令:

    • # EYZ0
    • # EYZ0
    • <李> # EYZ1 < br > 通过这样做,您可以在目录中创建必要的链接。这些命令是在您安装openssl时由brew建议的,并且已经直接从那里获得
  • < p > # EYZ2 # EYZ3

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。< br > < br > 即使在conda环境中工作,这也可以工作。< br > < br > 注意:# eyz0应该避免使用,因为根据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