OSX上使用psycopg2: 需要安装PostgreSQL吗?
我想从我的Mac电脑上用Python访问一个在远程机器上运行的PostgreSQL数据库。我需要在Mac上也安装PostgreSQL吗?还是说psycopg2可以单独使用?
有没有什么好的安装psycopg2在Mac上的指南?
3 个回答
你可以从一个 OS X 的 PostgreSQL 安装包 来安装。安装时允许它更改你的内存设置并重启(如果不想要,可以通过删除 '/etc/sysctl.conf' 来恢复) - README 文件(告诉你自己去做这些的)已经过时了。然后使用(或者如果你还没安装的话,先去获取) EasyInstall。
检查一下 PostgreSQL 安装程序把东西放在哪里 - 我的是在这里:
/Library/PostgreSQL/8.4/
把这个路径添加到你家目录下的 .bash_login
或 .bash_profile
文件中(如果没有的话可以自己新建一个):
export PATH="/Library/PostgreSQL/8.4/bin:$PATH"
然后(在一台运行 OS 10.4.11 和 Python 2.6 的 Intel iMac 上)执行:
sudo easy_install psycopg2
这找到了 psycopg2 2.0.11,并且(在我的设置下)给出了以下输出:
warning: no files found matching '*.html' under directory 'doc'
warning: no files found matching 'MANIFEST'
zip_safe flag not set; analyzing archive contents...
Adding psycopg2 2.0.11 to easy-install.pth file
Installed /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/psycopg2-2.0.11-py2.6-macosx-10.3-i386.egg
Processing dependencies for psycopg2
Finished processing dependencies for psycopg2
所以我想我没有 psycopg2
的文档...不过,尽管有警告,我还是可以执行:
python
>>>import psycopg2
>>>
成功了吗?也许吧。我还没尝试运行任何东西,但成功导入是第一个目标。顺便说一下,这是为了 Django。
psycopg2这个库需要用到PostgreSQL的libpq库和pg_config工具,这就意味着你得先安装一部分PostgreSQL。你可以通过MacPorts来安装Postgres和psycopg2,但版本问题会有点复杂——如果你想用比较新的PostgreSQL库,可能还需要安装一个更新的Python。根据你想做的事情,比如说你有其他的Python版本想用,直接安装一个标准的PostgreSQL,然后自己编译psycopg2可能会更简单。如果你已经安装了gcc等工具,编译其实很简单,通常唯一需要注意的就是确保它能找到libpq的相关文件。你可以查看在Mac OS X Leopard上让psycopg2工作和在OS X上安装psycopg2这两个链接,里面有一些常见的编译问题的解决方法。
macports告诉我,psycopg2这个软件包需要依赖postgres客户端和库(但不需要数据库服务器)。如果你已经成功安装了psycopg,那就没问题了。
如果你还没安装,可以考虑使用macports或fink来帮你处理这些依赖问题。通常这样会让事情变得简单一些(不过有时候也会出现构建问题)。