postgis--PostgreSQL16及其plpython3u扩展

PostgreSQL16及其plpython3u扩展

安装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

相关推荐
秋921 分钟前
Python工程师面试常问提问和回答(AI工程化方向 · 2026版)
人工智能·python·面试
炎武丶航24 分钟前
LeNet-5深度学习详解:从手写数字识别到代码实战
人工智能·python·深度学习·机器学习·ai·cnn·lenet
sitellla24 分钟前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频
TechWayfarer33 分钟前
云服务器地域怎么选:用离线IP数据库识别用户来源并优化部署
服务器·数据库·python·tcp/ip·数据分析
梦想不只是梦与想36 分钟前
Python 中的进程(Process)
python·进程·进程间通
郑洁文37 分钟前
基于Python的恶意流量监测系统的设计与实现
开发语言·python
星辰徐哥38 分钟前
Python AI基础:Matplotlib与Seaborn数据可视化
人工智能·python·matplotlib
AI玫瑰助手40 分钟前
Python流程控制:for循环与range函数的搭配使用
开发语言·python·信息可视化
anew___43 分钟前
2026年Python爬虫技术完全指南:从入门到实战
开发语言·爬虫·python
Jinkxs44 分钟前
Python基础 - 初识内置函数 Python自带的便捷工具
android·java·python