在开发系统上没有安装 PostgreSQL 时,将 Psycopg2安装到 viralenv 中

当 PostgreSQL 没有安装在我的开发系统ーー具有 OS X 10.6的 MacBook Pro 上时,是否有可能将 psycopg2安装到 virtualenv中?

当我从我的 virtualenv中运行 pip install psycopg2时,我收到了如下所示的错误。

我正在尝试使用 Django 连接到服务器上的遗留数据库,如果可能的话,我不希望在我的开发系统上安装 PostgreSQL。

为什么不安装 PostgreSQL?

在使用自制程序安装 PostgreSQL 时,我收到了一个错误。我的 MacBook Pro 上安装了 Xcode4ーー而且只安装了 Xcode4ーー我认为这与缺少 gcc 4.0有关。但是,这是另一个 StackOverflow 问题的问题。

更新于2011年4月12日上午8:37: 我仍然想知道不在我的 MacBook Pro 上安装 PostgreSQL 是否可行。但是,我运行了 brew update并用 brew install --force ossp-uuid强制重新安装了 ossp-uuid,现在 brew install postgresql可以工作了。成功安装了 PostgreSQL 之后,我就能够在 Virtual alenv 中使用 pip install psycopg2了。

来自 pip install psycopg2的错误

$ pip install psycopg2
Downloading/unpacking psycopg2
Running setup.py egg_info for package psycopg2


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


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
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 /Users/matthew/.pip/pip.log

初步研究

以下是我作为初步研究阅读的文章:

96601 次浏览

Psycopg 依赖于 pg_config命令,如果没有 pg_config命令,就不能安装 Psycopg。

如果系统安装对您来说是个问题,为什么不尝试编译 PostgreSQL 并在 $PATH 中包含生成的 bin 文件呢?比如:

export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2

您不需要安装完整的 PostgreSQL: 您只需要客户端库。

使用您在4月12日的更新中描述的方法,我可以安装 PostgreSQL (+ 1)。请注意,我最初运行的是 Python 2.7.1(32位) ,并且自制程序抛出了一些关于使用32位版本的 Python 的错误和警告。我已经换了64/32位版本的2.7.1,它工作起来像冠军。

关于 pyscopg2,我能够通过编辑 setup.cfg 从源代码将其安装到我的虚拟环境中。我将 pg _ config 设置为在自制的 Cellar 中更正路径(pg _ config =/usr/local/Cellar/postgreql/9.0.4/bin/pg _ config)。保存更改之后,我运行 python setup.py install,没有出现任何问题。值得注意的是,我做了 没有设置 Mac 的默认 Python 设置为32位。我从头到尾都用了新的64位。

在查看了一些文档之后,我认为如果我在系统路径中添加了自制程序的 postgreql 路径,那么我就可以使用 pip 来安装它。

参考文献:
Http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html

更新6-8-2011:
在将一个在 OS X 上编写的项目移植到 Windows7时,我发现我还必须在 Windows 上安装 PostgreSQL。这最终创建了另一个用户在我的启动屏幕和其他事情,我只是不喜欢。在做一些深入研究时,我发现了 PostgreSQL
给你的 Windows 驱动程序。后来我卸载了完整的 PostgreSQL 并安装了 ODBC 驱动程序,到目前为止,这些驱动程序工作得很好。

为了回答最初的问题,在做了一些深入的研究之后,我想我找到了与 OSX给你相当的 ODBC。我还没有机会试用它们,但这个概念在 Windows7上运行得非常好。等我有机会试用的时候我会更新的。在那之前,我希望这能有所帮助。

apt-get install libpq-dev

帮我搞定了 Debian

apt-get install libpq-dev

也帮我搞定了 Debian。在此之后,做点安装 Psycopg2。我在 heroku 上设置环境时遇到了 pg _ config 没有找到的问题,现在它工作正常。

您需要安装 python-dev包,以便使用 Python 扩展,如 psycopg2。我不知道如何在 Mac 中安装软件包,但是我运行以下命令在我的 Ubuntu 机器上安装一个 python 软件包。

sudo apt-get install python-dev

或者

sudo apt-get install python3-dev

如果您正在使用 Python 3.x。

安装完成后,在虚拟环境中运行以下命令。

pip install psycopg2

由于我从来不需要在这台服务器上安装 postgreql 数据库,所以在同一台服务器上运行 pip install Psycopg2之前,我在 Ubuntu 14 _ 04版本上安装了以下库

Apt-get install libpq-dev python-dev 然后执行 pip 在虚拟 env 中安装 Psycopg2。

输出 收集神经病2 使用缓存的 Psycopg2-2.6.1.tar. gz 用于收集包裹的车轮: Psycopg2 为 Psycopg2运行 setup.py bdist _ eler 存储在目录:/root/. cache/pip/Wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329中 成功地建立了心理学 安装收集的软件包: Psycopg2 成功安装了 Psycopg2-2.6.1

我用 MAC OSX 解决了这个问题:

$ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2
$ tar xfv postgresql-9.5.3.tar.bz2
$ cd postgresql-9.5.3
$ ./configure
$ make
$ cd src/bin/pg_config
$ export PATH=`pwd`:"$PATH"
$ pip install psycopg2
brew install postgresql


export LDFLAGS="-L/usr/local/opt/openssl/lib"


export CPPFLAGS="-I/usr/local/opt/openssl/include"


pip3 install psycopg2

使用 pip install psycopg2-binary,当 pip install psycopg2不工作的时候它对我很有效。

以上这些对我来说都不管用(OS Catalina 10.15.1)

与经典的 postgreshomebrew版本存在冲突。 请用命令删除自制版本

$ brew uninstall postgresql

然后从 官方网站安装:

$ sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

它实际上是一个简单的 psycopg2安装或 django-heroku包。

我知道您要求开发环境,但是如果您部署在服务器上,请说,Heroku。 只需在项目的 要求中添加下面一行。

Django-heroku = = 0.3.1

因为这个包本身将在服务器部署时安装所需的包,如 神经病2

如果你有 最近更新的 python 或更改的默认 python(让我们说从3.6到3.8)

sudo apt-get install python-dev   OR    sudo apt-get install python3-dev

将安装/运行前一个 Python 版本。

因此,如果您希望该命令能够适用于最近更新/更改的 python 版本,请尝试在命令中提到特定的版本,如 python3.8,如

sudo apt-get install python3.8-dev

用以下方法尝试上述方法

pip install wheel
export PATH=/path/to/compiled/postgresql/bin:"$PATH"
sudo apt-get install libpq-dev
sudo apt-get install python3.x-dev    **Change x with your version, eg python3.8**
pip install psycopg2-binary
pip install psycopg2

尝试指定的版本,它会工作,做到这一点在 venv 内

pip install psycopg2-binary==2.8.6