PostgreSQL16及其plpython3u扩展
- 安装plpython3u拓展常见错误
- 安装postgresql
- 安装postgis
- 安装python
- 配置环境变量
- 安装完成后后验证
- [pgAdmin 使用](#pgAdmin 使用)
安装plpython3u拓展常见错误
在安装pg后想用python创建自定义函数,默认是不支持的,但是增加拓展有很多坑,在这里记录以下。
最常见的错误:
错误: 无法加载库 "D:/ProgramFiles/PostgreSQL/13/lib/plpython3.dll": The specified module could not be found.
错误: 无法加载库 "D:/ProgramFiles/PostgreSQL/13/lib/plpython3.dll": The specified module could not be found.
SQL 状态: 58P01
安装postgresql
下载安装postgresql
安装postgis
postgis和postgresql版本号要对应
安装python
版本号要求非常严格,查看这个文件里面有指定版本。


配置环境变量
python需要配置环境变量,postgresql也是,是配置系统环境变量不是用户的。
安装完成后后验证
可以先在命令行验证
C:\Users\83832>"D:\ProgramFiles\PostgreSQL\16\bin\psql.exe" -U postgres -d postgres -c "CREATE EXTENSION plpython3u;"
用户 postgres 的口令:
CREATE EXTENSION
C:\Users\83832>"D:\ProgramFiles\PostgreSQL\16\bin\psql.exe" -U postgres -d postgres -c "CREATE OR REPLACE FUNCTION test_py() RETURNS text AS $$ return 'Python works!' $$ LANGUAGE plpython3u; SELECT test_py();"
用户 postgres 的口令:
CREATE FUNCTION
test_py
---------------
Python works!
(1 行记录)
pgAdmin 使用
需要先确认进入的数据库是否已经增加了plpython3u 扩展;(默认是postgres数据库 postgis_16_sample默认是没有的)
# 增加扩展
CREATE EXTENSION plpython3u;
# 测试创建函数
CREATE OR REPLACE FUNCTION add_numbers(a int, b int)
RETURNS int
AS $$
return a + b
$$ LANGUAGE plpython3u;
# 调用测试函数
SELECT add_numbers(10, 20);

enceDiagram.html