我已经下载了最新版本的pyscopg2,并尝试按照提供的说明进行构建和安装。但是,我总是会收到一个错误,说“w”未声明。有没有人有相关经验可以帮忙解决?
当构建工具无法找到您的PostgreSQL库时,会出现此错误。这意味着以下三种情况之一:
您的系统上没有安装PostgreSQL。如果是这样,请下载并构建PostgreSQL,或者在OS X上下载预构建的psycopg2二进制文件。
您在系统上安装了PostgreSQL,但安装的是二进制包,因此缺少psycopg2需要的必要库。在这种情况下,请下载并构建PostgreSQL。
更常见的情况是,这意味着您已经在系统上构建了PostgreSQL,只需要指示psycopg2如何找到pg_config二进制文件,以便可以配置编译。 有两种方法:
a.将pg_config路径放入shell路径中(如果使用默认设置从源代码构建PostgreSQL,则通常位于/usr/local/pgsql/bin/)。
b.或者,编辑psycopg2源文件夹中的setup.cfg文件,并在以pg_config开头的行上提供完整路径以找到pg_config。请确保通过删除前面的哈希符号来取消注释此行。如果使用默认设置构建PostgreSQL,则该行看起来类似于:
pg_config=/usr/local/pgsql/bin/pg_config
在Snow Leopard上使用MacPorts
pg_config=/opt/local/lib/postgresql90/bin/pg_config
PATH=$PATH:/opt/local/lib/postgresql90/bin/ pip install psycopg2
- rudyryk我需要在virtualenv中安装psycopg2库,而无需将其添加到根Python中。我也不想在本地机器上完全安装postgreSQL,因此我想出了这个解决方案,它似乎非常有效。
从这里下载postgres.app,并将应用程序拖放到Applications文件夹中。
在shell中,将postgres.app二进制目录添加到PATH:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin
. myvenv/bin/activate
我尝试设置pg_config变量,但那行不通。pip install明确告诉我,我必须将pg_config所在的目录添加到路径中。
我也比较喜欢这个解决方案,因为如果我想在本地运行PostgreSQL,我只需轻松启动应用程序,完成后关闭它,就没有任何东西在后台运行了。不需要进行系统配置更改或其他操作。这是一个非常好的方式,可以在本地开发或快速演示中运行PostgreSQL。
setup.cfg
文件,如下所示:pg_config=/Library/PostgreSQL/9.0/bin/pg_config
。 - Dave