在Mac OS X上安装pyscopg2的问题
我下载了最新版本的pyscopg2,并按照提供的说明尝试构建和安装它。但是我总是遇到一个错误,提示'w'没有声明。有没有人有这方面的经验?
3 个回答
我需要在一个虚拟环境中安装psycopg2库,但又不想把它装到主Python里,也不想在本地机器上完全安装PostgreSQL,所以我想出了一个解决方案,效果很好。
从这里下载postgres.app,然后把这个应用放到应用程序文件夹里。
在终端里,把postgres.app的bin目录添加到PATH环境变量中:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin
- 激活虚拟环境:
. myvenv/bin/activate
- 使用pip安装psycopg2:
pip install psycopg2
我尝试设置pg_config变量,但那没用。pip安装时特别告诉我,必须把pg_config所在的目录放到路径里。
我其实更喜欢这个方法,因为如果我想在本地运行PostgreSQL,只需启动这个应用,完成后再关闭它,就没了——后台没有任何东西在运行。也不需要更改系统配置。这是进行本地开发或快速演示的好方法。
在Snow Leopard上使用MacPorts
pg_config=/opt/local/lib/postgresql90/bin/pg_config
这个错误出现的原因是构建工具找不到你的Postgresql库。它可能有三种情况:
你的系统上没有安装postgresql。如果是这样,下载并安装postgres,或者下载一个适用于OS X的预编译的psycopg2二进制文件。
你的系统上安装了postgresql,但你是通过二进制包安装的,因此缺少psycopg2所需的必要库。在这种情况下,下载并安装postgres。
不过更常见的情况是,你的系统上已经安装了postgres,但你需要告诉psycopg2如何找到
pg_config
这个二进制文件,以便它可以配置编译。你可以选择:a. 将pg_config的路径添加到你的shell路径中(如果你是使用默认设置从源代码构建postgres,通常路径在
/usr/local/pgsql/bin/
)。b. 或者,编辑psycopg2源文件夹中的
setup.cfg
文件,在以pg_config=
开头的那一行提供pg_config
的完整路径。确保通过去掉前面的井号来取消注释这一行。如果你是使用默认设置构建postgres,这一行看起来会像:pg_config=/usr/local/pgsql/bin/pg_config