如何在MacOs X 10.5上安装plpython?

1 投票
1 回答
2269 浏览
提问于 2025-04-11 09:32

我刚在 Mac OS X 10.5 上安装了 PostgreSQL 8.3.4(使用 ports),但是我不知道怎么启用 PL/Python。当我运行 CREATE LANGUAGE plpythonu 时,出现了以下错误:

ERROR:  could not access file "$libdir/plpython": No such file or directory
STATEMENT:  CREATE LANGUAGE plpythonu;
psql:<stdin>:18: ERROR:  could not access file "$libdir/plpython": No such file or directory

我该怎么解决这个问题呢?理想情况下,我希望能避免在没有 port 的情况下编译 Postgres 或其他类似的操作。

这是我运行 pg_config 的输出:

BINDIR = /opt/local/lib/postgresql83/bin
DOCDIR = 
INCLUDEDIR = /opt/local/include/postgresql83
PKGINCLUDEDIR = /opt/local/include/postgresql83
INCLUDEDIR-SERVER = /opt/local/include/postgresql83/server
LIBDIR = /opt/local/lib/postgresql83
PKGLIBDIR = /opt/local/lib/postgresql83
LOCALEDIR = 
MANDIR = /opt/local/share/man
SHAREDIR = /opt/local/share/postgresql83
SYSCONFDIR = /opt/local/etc/postgresql83
PGXS = /opt/local/lib/postgresql83/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/opt/local' '--sysconfdir=/opt/local/etc/postgresql83' '--bindir=/opt/local/lib/postgresql83/bin' '--libdir=/opt/local/lib/postgresql83' '--includedir=/opt/local/include/postgresql83' '--datadir=/opt/local/share/postgresql83' '--mandir=/opt/local/share/man' '--without-docdir' '--with-includes=/opt/local/include' '--with-libraries=/opt/local/lib' '--with-openssl' '--with-bonjour' '--with-readline' '--with-zlib' '--with-libxml' '--with-libxslt' '--enable-thread-safety' '--enable-integer-datetimes' '--with-ossp-uuid' 'CC=/usr/bin/gcc-4.0' 'CFLAGS=-O2' 'CPPFLAGS=-I/opt/local/include -I/opt/local/include/ossp' 'CPP=/usr/bin/cpp-4.0' 'LDFLAGS=-L/opt/local/lib'
CC = /usr/bin/gcc-4.0 -no-cpp-precomp
CPPFLAGS = -I/opt/local/include -I/opt/local/include/ossp -I/opt/local/include/libxml2 -I/opt/local/include
CFLAGS = -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv
CFLAGS_SL = 
LDFLAGS = -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib
LDFLAGS_SL = 
LIBS = -lpgport -lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lm 
VERSION = PostgreSQL 8.3.4

(我几天前刚从 Linux 切换到 Mac……在 Ubuntu 上,这些东西通常是直接就能用的,所以我现在有点迷茫。)

1 个回答

3

真是傻我了:

[lib/postgresql83] > variants postgresql83
 postgresql83 has the variants:
    universal
    python: add support for python
    krb5: add support for Kerberos 5 authentication
    perl: add Perl support

(我之前用的是 universal。)

这意味着你需要安装正确版本的PostgreSQL,才能让你的Python函数正常运行。

$ sudo port install postgresql83 +python postgresql-server +python

撰写回答