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

相关推荐
skywalk81632 小时前
发现Kotti项目的python包Beaker 存在安全漏洞
开发语言·网络·python·安全
天天进步20153 小时前
Python全栈项目:从零构建基于 Django 的知识管理系统(KMS)
开发语言·python·django
珎珎啊3 小时前
Python3 迭代器与生成器
开发语言·python
思绪无限3 小时前
YOLOv5至YOLOv12升级:金属锈蚀检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·yolov12
yejqvow123 小时前
Pandas 高效实现组内跨行时间戳匹配与布尔标记
jvm·数据库·python
2501_921960854 小时前
协同本体论:元公理体系、普适演化律则与工程范式统一构建
python·重构·numpy·pandas·scipy
小锋java12344 小时前
【技术专题】Matplotlib3 Python 数据可视化 - Matplotlib3 绘制热力图(Heatmap)
python
书到用时方恨少!4 小时前
Python 面向对象进阶:多态——同一个接口,千种面孔
开发语言·python·多态·面向对象
AC赳赳老秦4 小时前
OpenClaw实战案例:用Agent实现每日工作日报自动生成+发送
人工智能·python·职场和发展·eclipse·github·deepseek·openclaw
qq_189807034 小时前
html标签如何提升可访问性_aria-label与title区别【指南】
jvm·数据库·python