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

相关推荐
@陈小鱼2 小时前
MATLAB+Python:基于小样本卷积神经网络的 PPG 血压预测
人工智能·python·机器学习·matlab·脉搏波·血压·一维卷积神经网络
卷无止境2 小时前
Python数据进阶专题:用声明式验证让数据管道告别"惊喜"
后端·python·数据分析
码云骑士2 小时前
61-LangChain-vs-LlamaIndex-选型对比-功能矩阵-混用实践
python·线性代数·矩阵·langchain
阿豪只会阿巴2 小时前
两小时快速入门 FastAPI--第一回
开发语言·python·fastapi
Hesionberger2 小时前
动态规划与二分法破解最长递增子序列
java·数据结构·python·算法·leetcode
JustNow_Man2 小时前
【Claude Code】 中给 Python + XML 项目建立可靠验证体系
xml·linux·python
薛定猫AI2 小时前
【技术干货】多模型AI编程代理实战:用Python统一接入Claude Opus 4.8
人工智能·python·ai编程
二宝哥3 小时前
08.Python流程控制详解:从基础到实践
开发语言·python
我是坏垠13 小时前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
测试秃头怪14 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例