在PostgreSQL 8或9中安装plpython

8 投票
1 回答
5857 浏览
提问于 2025-04-16 16:59

我想在PostgreSQL上安装plpython,这样就可以使用Python触发器了。

当我恢复我的数据库时(我的数据库里有一些Python触发器),就出现了这个错误(错误信息太长了,所以我只粘贴了前几行):

C:/Program Files/PostgreSQL/9.0/bin/pg_restore.exe
   --host localhost
   --port 5432
   --username "postgres"
   --dbname "mfa"
   --verbose
   "%HOMEPATH%/Desktop/EhSAA/MFA/db_schema/mydb.backup"

pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: creating PROCEDURAL LANGUAGE plpythonu
pg_restore: [archiver (db)] Error while PROCESSING TOC:

pg_restore: [archiver (db)] Error from TOC entry 315; 2612 16595
                                  PROCEDURAL LANGUAGE plpythonu postgres

pg_restore: [archiver (db)] could not execute query:
ERROR: could not load library "C:/Program Files/PostgreSQL/9.0/lib/plpython.dll":
The specified module could not be found.

命令是:

CREATE OR REPLACE PROCEDURAL LANGUAGE plpythonu;

1 个回答

6

看起来你需要把 plpython.dll 文件放到 C:/Program Files/PostgreSQL/9.0/lib 这个文件夹里。我刚在我的系统上试了以下命令,结果是成功的。

cd C:\Program Files\PostgreSQL\8.2\bin
createlang --dbname=MyDb plpythonu -U myuser

我检查了一下我的 C:\Program Files\PostgreSQL\8.2\lib 文件夹,发现里面有 plpython.dll 文件。根据你的错误提示,看来你的 PostgreSQL 安装文件夹里缺少这个 plpython.dll 文件。

撰写回答