[英]How to install psycopg2 with "pip" on 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 ...
注意:不久前,PyPI 中有适用于 Windows 的二进制轮子,因此对于 Windows 用户来说,这不再是问题。 以下是适用于 Linux 和 Mac 用户的解决方案,因为他们中的很多人都是通过网络搜索找到这篇文章的。
而是安装psycopg2-binary
PyPI 包,它具有适用于 Linux 和 Mac OS 的 Python 轮子。
pip install psycopg2-binary
安装从源代码构建psycopg2
包的先决条件:
sudo apt install libpq-dev python3-dev
您可能需要安装python3.8-dev
或类似的,例如 Python 3.8。
sudo apt install libpq-dev python-dev
如果这还不够,请尝试
sudo apt install build-essential
或者
sudo apt install postgresql-server-dev-all
在再次安装 psycopg2 之前也是如此。
1真的吗? 现在是 2021
在 CentOS 上,你需要 postgres 开发包:
sudo yum install python-devel postgresql-devel
这至少是 CentOS 6 上的解决方案。
在 Mac Mavericks 上使用 Postgres.app 版本 9.3.2.0 RC2 我需要在安装 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 机器上配置了 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
对于 Python 3,您应该在 Debian 下使用sudo apt-get install libpq-dev python3-dev
。
这对我有用(在 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
如果您使用 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/按照安装过程进行操作
到目前为止,答案太像魔法食谱了。 您收到的错误告诉您 pip 找不到 PostgreSQL 查询库所需的部分。 可能这是因为您将它安装在操作系统的非标准位置,这就是消息建议使用 --pg-config 选项的原因。
但更常见的原因是您根本没有安装 libpq。 这通常发生在您没有安装 PostgreSQL 服务器的机器上,因为您只想运行客户端应用程序,而不是服务器本身。 每个操作系统/发行版都不同,例如在 Debian/Ubuntu 上你需要安装 libpq-dev。 这允许您针对 PostgreSQL 查询库编译和链接代码。
大多数答案还建议安装 Python 开发库。 当心。 如果你只使用你的发行版安装的默认 Python,那会工作,但如果你有更新的版本,它可能会导致问题。 如果您已经在这台机器上构建了 Python,那么您已经拥有编译 C/C++ 库以与 Python 交互所需的开发库。 只要您使用正确的 pip 版本,即与 python 二进制文件安装在同一个 bin 文件夹中的那个,那么您就全部设置好了。 无需安装旧版本。
在Debian/Ubuntu
:
首先安装并构建psycopg2
包的依赖项:
# apt-get build-dep python-psycopg2
然后在您的虚拟环境中,编译并安装psycopg2
模块:
(env)$ pip install psycopg2
我在 Windows 中首先安装到基本 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
在安装 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。
对于 MacOS,
使用下面的命令安装psycopg2,效果很好!!!
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
我使用 PG 下载站点http://www.postgresql.org/download/linux/redhat/上的 RedHat/CentOS 存储库安装了 Postgresql92
要获得 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
运行下面的命令,你应该没问题
$ apt-get update
$ apt install python3-dev libpq-dev
$ pip3 install psycopg2
在 Windows XP 上,如果未安装 postgres,则会出现此错误...
我已经为此奋斗了好几天,终于想出了如何让“pip install psycopg2”命令在Windows(运行Cygwin)的virtualenv中运行。
我正在点击“找不到 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 成功安装该模块。 (无论如何,这可能比使用 PostgreSQL 的 Cygwin 版本更可取,因为本机版本会运行得更快)。
Psycopg2 依赖于 Postgres 库。 在 Ubuntu 上你可以使用:
apt-get install libpq-dev
然后:
pip install psycopg2
对于低端的 Windows 用户,不得不从下面的链接安装 psycopg2,只需将其安装到您设置的任何 Python 安装中即可。 它将把名为“psycopg2”的文件夹放在你的 python 安装的 site-packages 文件夹中。
之后,只需将该文件夹复制到您的 virtualenv 的 site-packages 目录,您将没有问题。
这是您可以找到安装 psycopg2 的可执行文件的链接
在 OpenSUSE 13.2 上,这修复了它:
sudo zypper in postgresql-devel
我可以将它安装在 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')
在Arch基础发行版中:
sudo pacman -S python-psycopg2
pip2 install psycopg2 # Use pip or pip3 to python3
如果 pip 不工作,那么您可以从这里下载 .whl 文件https://pypi.python.org/pypi/psycopg2 将其解压缩 .. 而不是python setup.py install
在 Ubuntu 上,我只需要 postgres 开发包:
sudo apt-get install postgresql-server-dev-all
*在virtualenv中测试
在 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
我遇到了这个问题,主要原因是安装了 2 个相同的版本。 一种来自 postgres.app,一种来自 HomeBrew。
如果您选择只保留 APP:
brew unlink postgresql
pip3 install psycopg2
在 macOS Mojave 上,确保您使用命令行工具 10.3 进行最新更新 - 对我有用 - 使用软件更新更新它,Mojave 上以前版本的命令行工具对我不起作用。
我正在使用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 ...
每次我遇到这个问题时,这似乎对我有用。
pip install psycopg2==2.7.5
在 MacOS 上安装
以下是在 Mac OS Big Sur 上安装 psycopg2 时对我和我的团队成员有用的步骤,并且我们已经对 Big Sur 进行了广泛的测试。 在开始之前,请确保您已安装 Xcode 命令行工具。 如果没有,请从 Apple Developer 站点安装它。 以下步骤假设您已安装自制软件。 如果您还没有安装自制软件,请安装它。 最后但并非最不重要的是,它还假设您已经在您的系统中安装了 PostgreSQL,如果没有,请安装它。 不同的人有不同的偏好,但是通过 Enterprise DB 安装程序在官方 PostgreSQL 站点上的默认安装方法是大多数人的最佳方法。
竖起联动pg_config
文件在您的.zshrc
文件方式:
export PATH="$PATH:/Library/PostgreSQL/12/bin:$PATH"
。 通过这种方式,您可以链接到/Library/PostgreSQL/12/bin
文件夹中的pg_config
文件。 因此,如果您的 PostgreSQL 安装是通过其他方式安装的,例如 Postgres.app 或通过自制软件安装 Postgres,那么您需要在.zshrc
文件中包含该 PostgreSQL 安装的bin
文件夹中pg_config
文件的链接,因为psycopg2
依赖psycopg2
。
使用命令brew install openssl
通过 Homebrew brew install openssl
。 这样做的原因是libpq
(作为psycopg2
基础的库)使用 openssl - psycopg2
不直接使用它。 安装后,将以下命令放入.zshrc
文件中:
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
现在到了最重要的一步,这是安装libpq
使用命令brew install libpq
。 这将安装 libpq 库。 根据文档
libpq 是 C 应用程序程序员的 PostgreSQL 接口。 libpq 是一组库函数,允许客户端程序将查询传递到 PostgreSQL 后端服务器并接收这些查询的结果。
brew link libpq
,如果这不起作用,则使用命令: brew link libpq --force
。.zshrc
以下内容放入您的.zshrc
文件中export PATH="/usr/local/opt/libpq/bin:$PATH"
。 这为libpq
库创建了所有必要的链接。source ~/.zshrc
。pip install psycopg2-binary
应该避免,因为根据 psycopg2 库的开发人员不鼓励在生产中使用 -binary 包,因为过去它们在多线程环境中被证明是不可靠的。 这可能已在更新的版本中修复,但我从未设法重现该故障。
我只在 Python2 上有这个错误。 我立即将我的虚拟环境升级到 Python3.8,错误不再存在。
对于 FEDORA 用户:
libpq-dev
是依赖项之一,但是,package 应该在安装中命名: libpq-devel
所以这应该可以解决 Fedora 的问题:
sudo yum install libpq-devel
在Gentoo
尝试一下:
emerge dev-libs/libpqxx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.