如何在 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=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-binary
PyPI 包,它有适用于 Linux 和 Mac OS 的 Python 轮子。
pip install psycopg2-binary
选项 2
安装从源代码构建包的先决条件psycopg2
:
Debian/Ubuntu
Python 版本 | 命令 | 笔记 |
---|---|---|
默认 Python 3 | sudo apt install libpq-dev python3-dev | |
Python 3.x | sudo apt install libpq-dev python3.x-dev | 代替x 命令 |
Python 2 | sudo 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