当开发系统上没有安装PostgreSQL时,将psycopg2安装到virtualenv中
当PostgreSQL没有安装在我的开发系统MacBook Pro OS X 10.6上时,是否可以将psycopg2
安装到virtualenv
?
当我在我的virtualenv
运行pip install psycopg2
,收到下面显示的错误。
我试图使用Django连接到服务器上的遗留数据库,如果可能的话,我宁愿不在我的开发系统上安装PostgreSQL。
为什么不安装PostgreSQL?
使用自制程序安装PostgreSQL时收到错误。 我在MacBook Pro上安装了Xcode4,只安装了Xcode4,并认为这与缺lessgcc 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
初步研究
以下是我作为初步研究所阅读的文章:
- 在OS X上安装psycopg2以在PostgreSQL上使用Django
- 在OS X上安装psycopg2
- 在Ubuntu JauntyLucid上使用psycopg2和virtualenv
- Postgres,psycopg2,virtualenv安装提示
psycopg依赖于pg_config
命令,如果你没有,你不能安装psycopg。
如果系统安装对您来说是一个问题,您为什么不尝试编译PostgreSQL并在$ PATH中包含生成的bin文件? 喜欢:
export PATH=/path/to/compiled/postgresql/bin:"$PATH" pip install psycopg2
apt-get install libpq-dev
帮助我在debian挤压
apt-get install libpq-dev
也帮助我在debian挤压。 之后,做点安装psycopg2。 当我在heroku上设置我的环境时,我遇到了pg_config的问题没有find问题,现在工作正常。
您需要安装python-dev
软件包才能使用python扩展名,例如psycopg2
。 我不知道如何在Mac中安装软件包,但我运行以下命令在我的Ubuntu机器上安装python软件包。
sudo apt-get install python-dev
要么
sudo apt-get install python3-dev
如果你正在使用Python3.x。
安装完成后,在虚拟环境中运行以下命令。
pip install psycopg2
你不需要安装完整的PostgreSQL:你只需要客户端库。
使用你在4月12日更新中描述的方法,我能够安装PostgreSQL(+1)。 请注意,我原来是运行Python 2.7.1(32位)和自制程序扔了几个关于使用Python的32位版本的错误和警告。 自从我转换了2.7.1的64/32位版本之后,它就像一个冠军。
关于pyscopg2,我可以通过编辑setup.cfg将它安装到我的虚拟环境中。 我设置了pg_config来纠正自制软件库中的path(pg_config = / usr / local / Cellar / postgresql / 9.0.4 / bin / pg_config)。 保存更改之后,我运行python setup.py安装了零问题。 值得注意的是,我没有将Mac的默认python设置设置为32位。 我从头到尾使用了新的64位。
看了一些文档后,我想如果我添加了自制的postgresqlpath到系统path,我可以用pip来安装它。
参考:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html
2011年8月6日更新:
将一个在OS X上编写的项目移植到Windows 7时,我发现我也必须在Windows上安装PostgreSQL。 这最终创build了另一个用户在我的启动屏幕和其他我不喜欢的东西。 在做一些挖掘工作时,我在这里find了PostgreSQL的Windows驱动程序。 我已经卸载完整的PostgreSQL,并安装了ODBC驱动程序,到目前为止,它的工作很好。
为了解决原来的问题,在做了更多的挖掘后,我想我在这里find了与OS X等价的ODBC。 我没有机会尝试一下,但这个概念在Windows 7上运行得非常好。当我有机会尝试它时,我会更新它。 在此之前,我希望这有助于。
我解决了它在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
因为我从来不需要在这台服务器上安装postgresql数据库,所以我在Ubuntu 14_04版本上安装了以下库,然后在同一台服务器上运行pip install psycopg2
apt-get install libpq-dev python-dev,然后在虚拟环境中执行pip install psycopg2。
输出收集psycopg2使用cachingpsycopg2-2.6.1.tar.gz构build收集包的轮子:psycopg2运行setup.py bdist_wheel for psycopg2存储在目录中:/root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329成功buildpsycopg2安装收集的软件包:psycopg2安装成功psycopg2-2.6.1
- 点构build选项来使用多核
- pip忽略setup.py中的dependency_links
- 我可以使用`pip`而不是`easy_install`来执行`python setup.py install`的依赖关系parsing吗?
- setuptools,distribution和pip如何相互关联?
- 铛错误:未知参数:'-mno-fused-madd'(python软件包安装失败)
- 为什么#egg = foo当从git repo进行pip安装时
- pip安装失败,连接错误:证书validation失败(_ssl.c:598)“
- 在代码中安装python模块
- “python setup.py install”和“pip install”之间的区别