关于virtualenv:如何在Python上用“pip”安装psycopg2?

How to install psycopg2 with “pip” on Python?

我使用的是virtualenv,我需要安装"psycopg2"。

我已完成以下操作:

1
pip install http://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.4.tar.gz#md5=24f4368e2cfdc1a2b03282ddda814160

我有以下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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工作?

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


我在这篇文章中找到了这个问题的Linux解决方案。

"苍鹰"的这篇文章给了我一个解决方案:如果你在Ubuntu/Debian上,运行sudo apt-get install libpq-dev python-dev

更新

由于越来越多的人发现这个答案很有用,并发布了自己的解决方案,下面是他们的列表:

Debian/UbuntuPython 2

1
sudo apt install libpq-dev python-dev

Python 3

1
sudo apt install libpq-dev python3-dev

附加的

如果以上都不能解决您的问题,请尝试

1
sudo apt install build-essential

1
sudo apt install postgresql-server-dev-all


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

1
sudo yum install python-devel postgresql-devel

至少在Centos 6上是这样的解决方案。


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

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


如果你在Mac电脑上,你可以使用自制啤酒。

1
brew install postgresql

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

祝你好运


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

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

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


对于python 3,应该在debian下使用sudo apt-get install libpq-dev python3-dev


这就是我的工作(关于瑞尔,世纪:

1
sudo yum install postgresql postgresql-devel python-devel

现在将postgresql binary dir的路径包含在pip安装中:

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

确保包含正确的路径。这一切:

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


如果您使用的是Mac OS,那么应该从源代码安装PostgreSQL。安装完成后,需要使用以下命令添加此路径:

1
export PATH=/local/pgsql/bin:$PATH

或者可以这样附加路径:

1
export PATH=.../:usr/local/pgsql/bin

在您的.profile文件或.zshrc文件中。

这可能因操作系统而异。

您可以按照http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source中的安装过程进行操作。/


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

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

大多数答案还建议安装一个python dev库。小心。如果您只使用由您的发行版安装的默认python,这将有效,但是如果您有一个更新的版本,它可能会导致问题。如果在这个机器上建立了Python,那么就已经有了编译C/C++库与Python接口所需的DEV库。只要您使用的是正确的PIP版本,即安装在与python二进制文件相同的bin文件夹中的版本,那么您就都设置好了。无需安装旧版本。


Debian/Ubuntu上:

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

1
# apt-get build-dep python-psycopg2

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

1
(env)$ pip install psycopg2


我以前做过,在Windows中,您首先安装到基本的python安装中。

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

它不漂亮,但很管用。


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


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


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

为了得到pg_配置,我必须在path中添加/usr/pgsql-9.2/bin。


在Fedora 24上:用于python 3.x

1
2
3
sudo dnf install postgresql-devel python3-devel

sudo dnf install redhat-rpm-config

激活虚拟环境:

1
pip install psycopg2

我已经为此奋斗了好几天,终于找到了如何让"pip install psycopg2"命令在Windows的virtualenv中运行(运行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 filespostgresql9.2in"添加到我的windows路径时,cygwin pip安装程序能够找到postgresql的正确版本,并且能够使用pip成功地安装模块。(这可能比使用PostgreSQL的cygwin版本更好,因为本地版本运行得更快)。


我可以将它安装在Windows机器中,并通过以下命令将anaconda/spyder与python 2.7结合使用:

1
 !pip install psycopg2

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

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


对于底层的Windows用户来说,必须从下面的链接安装psycopg2,只要把它安装到您安装的任何python上就行了。它将把名为"psycopg2"的文件夹放在python安装的site packages文件夹中。

之后,只需将该文件夹复制到virtualenv的site packages目录,您就不会遇到任何问题。

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

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


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

1
apt-get install libpq-dev

然后:

1
pip install psycopg2


在OpenSUSE 13.2上,这修复了它:

1
sudo zypper in postgresql-devel

在拱座分布中:

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

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

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

*在virtualenv中测试


OSX 10.11.6(El Capitan)

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


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


在带有MacPorts的OSX上:

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

Gentoo中试试这个:

1
emerge dev-libs/libpqxx