在开发系统上未安装PostgreSQL时,将psycopg2安装到virtualenv中

时间:2011-04-12 01:19:32

标签: virtualenv pip psycopg2

当我的开发系统 - 带OS X 10.6的MacBook Pro上没有安装PostgreSQL时,是否可以将psycopg2安装到virtualenv

当我从pip install psycopg2中运行virtualenv时,我收到了以下错误。

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

为什么不安装PostgreSQL?

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

2011年4月12日上午8:37更新:我还是想知道如果不在我的MacBook Pro上安装PostgreSQL,这是否可行。但是,我运行brew update并强制重新安装ossp-uuid brew install --force ossp-uuid,现在brew install postgresql正常工作。成功安装PostgreSQL后,我能够从我的virtualenv中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

初步研究

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

14 个答案:

答案 0 :(得分:68)

apt-get install libpq-dev

帮助我解决debian问题

答案 1 :(得分:46)

psycopg取决于pg_config命令,如果没有,则无法安装psycopg。

如果您遇到系统安装问题,为什么不尝试编译PostgreSQL并在$ PATH中包含生成的bin文件?像:

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

答案 2 :(得分:11)

apt-get install libpq-dev

帮助我压缩debian。之后做pip安装psycopg2。当我在heroku上设置我的环境时,我遇到了pg_config未找到问题的问题,现在它正常工作。

答案 3 :(得分:6)

您需要安装python-dev包才能使用psycopg2之类的python扩展。我不知道如何在mac中安装软件包,但我运行以下命令在我的Ubuntu机器上安装python软件包。

sudo apt-get install python-dev 

或者

sudo apt-get install python3-dev

如果您使用的是Python3.x。

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

pip install psycopg2

答案 4 :(得分:4)

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

答案 5 :(得分:1)

使用您在4月12日更新中描述的方法,我能够安装PostgreSQL(+1)。请注意,我最初运行的是Python 2.7.1(32位),并且自制软件引发了一些关于使用32位版本Python的错误和警告。我已经改变了2.7.1的64/32位版本,它就像一个冠军。

关于pyscopg2,我可以通过编辑setup.cfg从源代码将其安装到我的虚拟环境中。我设置pg_config来修正homebrew的Cellar里面的路径(pg_config = / usr / local / Cellar / postgresql / 9.0.4 / bin / pg_config)。保存更改后,我运行python setup.py install,零问题。值得注意的是,我将Mac的默认python设置设置为32位。我从头到尾使用了新的64位。

在查看了一些文档之后,我想如果我将homebrew的postgresql路径添加到系统路径中,我可以使用pip来安装它。

<强>参考:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html

更新6-8-2011:
在将OS X上编写的项目移植到Windows 7时,我发现我必须在Windows上安装PostgreSQL。这最终在我的启动屏幕上创建了另一个用户以及其他我不喜欢的内容。在进行一些挖掘时,我发现了PostgreSQL here的Windows驱动程序。我已经卸载了完整的PostgreSQL并安装了ODBC驱动程序,到目前为止,这些驱动程序运行良好。

为了解决原始问题,在进行了一些挖掘后,我想我找到了OS X here的等效ODBC。我没有机会尝试它们,但这个概念在Windows 7上运行得很好。当我有机会试用它时,我会更新它。在那之前,我希望这会有所帮助。

答案 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

答案 7 :(得分:1)

brew install postgresql

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

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

pip3 install psycopg2

答案 8 :(得分:1)

以上所有内容均不适用于我(OS Catalina 10.15.1)

经典postgreshomebrew版本存在冲突。 请通过命令删除自制版本

$ brew uninstall postgresql

,然后从official website安装:

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

对于简单的psycopg2安装或django-heroku软件包,这是实际的情况。

答案 9 :(得分:1)

如果您最近更新了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

答案 10 :(得分:0)

由于我从未需要在此服务器上安装postgresql数据库,因此在同一台服务器上运行pip install psycopg2之前,我在Ubuntu 14_04版本上安装了以下库

apt-get install libpq-dev python-dev  然后在虚拟环境中执行pip install psycopg2。

输出  收集psycopg2   使用缓存的psycopg2-2.6.1.tar.gz 为收集的包构建轮子:psycopg2   为psycopg2运行setup.py bdist_wheel   存储在目录中:/root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329 成功构建了psycopg2 安装收集的软件包:psycopg2 已成功安装psycopg2-2.6.1

答案 11 :(得分:0)

使用pip install psycopg2-binary,它在pip install psycopg2不工作时对我有用。

答案 12 :(得分:0)

我知道您要开发环境,但是如果要在服务器上部署,请说Heroku。 只需在项目的 requirements.txt 中添加以下行即可。

django-heroku == 0.3.1

由于此软件包本身将在服务器部署上安装所需的软件包,例如 psycopg2

答案 13 :(得分:0)

我偶然通过以下方式解决了这个问题:

ggplot_build

代替

brew install psycopg2