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

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

我发现这个postsearch这个问题的Linux解决scheme。

这个由“goshawk”发布给我的解决scheme:如果你在Ubuntu / Debian上运行sudo apt-get install libpq-dev python-dev

更新

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

于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 

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

 sudo yum install python-devel postgresql-devel 

这至less是CentOS 6上的解决scheme。

使用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上,你可以使用自制软件

 brew install postgresql 

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

祝你好运

我最近在Windows机器上configuration了psycopg2。 最简单的安装是使用Windows可执行二进制文件。 你可以在http://stickpeople.com/projects/python/win-psycopg/find它。;

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

 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

这是对我有用(在RHEL上,CentOS:

 sudo yum install postgresql postgresql-devel python-devel 

现在包括你的postgresql二进制目录的path与你pip安装:

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

确保包含正确的path。 就这样 :)

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

如果你使用Mac OS,你应该从源代码安装PostgreSQL。 安装完成后,您需要使用以下命令添加此path:

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

或者你可以像这样追加path:

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

.profile文件或.zshrc文件中。

这可能因操作系统而异。

您可以从http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/下载安装过程;

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

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

大部分的答案还build议安装一个Python开发库。 小心。 如果您只使用发行版安装的默认Python,那么这将起作用,但是如果您有更新的版本,则可能会导致问题。 如果你已经在这台机器上构build了Python,那么你已经有了编译C / C ++库来与Python接口所需的开发库。 只要你使用正确的点子版本,一个安装在相同的bin文件夹作为python二进制文件,那么你都设置。 无需安装旧版本。

Debian/Ubuntu

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

 # apt-get build-dep python-psycopg2 

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

 (env)$ pip install psycopg2 

我已经在你安装到你的基本python安装的窗口之前做了这个。

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

这不是很漂亮,但它的工作原理。

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

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

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

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

在Fedora 24上:对于Python 3.x

 sudo dnf install postgresql-devel python3-devel sudo dnf install redhat-rpm-config 

激活您的虚拟环境:

 pip install psycopg2 

我一直在为此奋斗了几天,终于想出了如何让“pip install psycopg2”命令在Windows的virtualenv(运行Cygwin)中运行。

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

VERSION = PostgreSQL 8.2.11

这不适用于当前版本的psycopg2,它似乎至less需要9.1。 当我在Windowspath中添加“c:\ Program Files \ PostgreSQL \ 9.2 \ bin”时,Cygwin pip安装程序能够find正确版本的PostgreSQL,并且能够使用pip成功安装模块。 (这可能比使用PostgreSQL的Cygwin版本更可取,因为本地版本运行得更快)。

对于低端的Windows用户而言,不得不从下面的链接中安装psycopg2,只需将其安装到您安装的任何Python安装中。 它会把名为“psycopg2”的文件夹放到python安装的site-packages文件夹中。

之后,只需将该文件夹复制到virtualenv的site-packages目录中即可,不会有任何问题。

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

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

在OpenSUSE 13.2上,这固定了它:

 sudo zypper in postgresql-devel 

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

  !pip install psycopg2 

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

  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 

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

 apt-get install libpq-dev 

然后:

 pip install psycopg2 

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

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

*在virtualenvtesting

在OSX 10.11.6(El Capitan)

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

在带有macports的OSX上:

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

Gentoo试试这个:

 emerge dev-libs/libpqxx