在Mac OS X上安装pyscopg2遇到问题

3

我已经下载了最新版本的pyscopg2,并尝试按照提供的说明进行构建和安装。但是,我总是会收到一个错误,说“w”未声明。有没有人有相关经验可以帮忙解决?

3个回答

11

当构建工具无法找到您的PostgreSQL库时,会出现此错误。这意味着以下三种情况之一:

  1. 您的系统上没有安装PostgreSQL。如果是这样,请下载并构建PostgreSQL,或者在OS X上下载预构建的psycopg2二进制文件。

  2. 您在系统上安装了PostgreSQL,但安装的是二进制包,因此缺少psycopg2需要的必要库。在这种情况下,请下载并构建PostgreSQL。

  3. 更常见的情况是,这意味着您已经在系统上构建了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


2
如果您通过一键安装程序(http://www.postgresql.org/download/macosx)在Snow Leopard上安装PostgreSQL 9.0.2,则需要编辑psycopg2的setup.cfg文件,如下所示:pg_config=/Library/PostgreSQL/9.0/bin/pg_config - Dave

3

在Snow Leopard上使用MacPorts

pg_config=/opt/local/lib/postgresql90/bin/pg_config

3
谢谢!它帮助我找到了。最后,我使用了这个命令:PATH=$PATH:/opt/local/lib/postgresql90/bin/ pip install psycopg2 - rudyryk

0

我需要在virtualenv中安装psycopg2库,而无需将其添加到根Python中。我也不想在本地机器上完全安装postgreSQL,因此我想出了这个解决方案,它似乎非常有效。

  1. 这里下载postgres.app,并将应用程序拖放到Applications文件夹中。

  2. 在shell中,将postgres.app二进制目录添加到PATH:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

  1. 激活虚拟环境:

. myvenv/bin/activate

  1. pip install psycopg2

我尝试设置pg_config变量,但那行不通。pip install明确告诉我,我必须将pg_config所在的目录添加到路径中。

我也比较喜欢这个解决方案,因为如果我想在本地运行PostgreSQL,我只需轻松启动应用程序,完成后关闭它,就没有任何东西在后台运行了。不需要进行系统配置更改或其他操作。这是一个非常好的方式,可以在本地开发或快速演示中运行PostgreSQL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接