在Mac OS X上安装pyscopg2的问题

3 投票
3 回答
6037 浏览
提问于 2025-04-15 11:30

我下载了最新版本的pyscopg2,并按照提供的说明尝试构建和安装它。但是我总是遇到一个错误,提示'w'没有声明。有没有人有这方面的经验?

3 个回答

0

我需要在一个虚拟环境中安装psycopg2库,但又不想把它装到主Python里,也不想在本地机器上完全安装PostgreSQL,所以我想出了一个解决方案,效果很好。

  1. 这里下载postgres.app,然后把这个应用放到应用程序文件夹里。

  2. 在终端里,把postgres.app的bin目录添加到PATH环境变量中:

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

  1. 激活虚拟环境:

. myvenv/bin/activate

  1. 使用pip安装psycopg2:

pip install psycopg2

我尝试设置pg_config变量,但那没用。pip安装时特别告诉我,必须把pg_config所在的目录放到路径里。

我其实更喜欢这个方法,因为如果我想在本地运行PostgreSQL,只需启动这个应用,完成后再关闭它,就没了——后台没有任何东西在运行。也不需要更改系统配置。这是进行本地开发或快速演示的好方法。

3

在Snow Leopard上使用MacPorts

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

这个错误出现的原因是构建工具找不到你的Postgresql库。它可能有三种情况:

  1. 你的系统上没有安装postgresql。如果是这样,下载并安装postgres,或者下载一个适用于OS X的预编译的psycopg2二进制文件。

  2. 你的系统上安装了postgresql,但你是通过二进制包安装的,因此缺少psycopg2所需的必要库。在这种情况下,下载并安装postgres。

  3. 不过更常见的情况是,你的系统上已经安装了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

撰写回答