You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下PostgreSQL14执行plpython3u扩展报错求解决

解决PostgreSQL 14中plpython3u加载失败的问题

核心问题分析

从报错日志能明确两个关键问题:

  • PostgreSQL尝试加载plpython3.dll失败,且Python环境路径混乱(同时指向Python 3.3和3.9两个不兼容版本)
  • PYTHONHOME和PYTHONPATH配置错误,导致Python核心的encodings模块无法被找到

具体解决步骤

1. 匹配PostgreSQL 14兼容的Python版本

PostgreSQL 14的plpython3u扩展必须使用Python 3.9版本(对应EDB Language Pack v2的Python 3.9),日志中出现的Python 3.3属于旧版本,完全不兼容,需要彻底清理相关路径与配置。

2. 修正系统环境变量

  • 打开Windows环境变量设置:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 删除或修改PYTHONHOME:移除指向C:\edb\languagepack-9.6\x64\Python-3.3的PYTHONHOME,改为指向正确的Python 3.9路径(例如C:\edb\languagepack\v2\Python-3.9)
  • 调整PYTHONPATH:仅保留Python 3.9的相关路径,比如C:\edb\languagepack\v2\Python-3.9\Lib;C:\edb\languagepack\v2\Python-3.9\Lib\encodings,删除所有指向Python 3.3的路径
  • 重启PostgreSQL服务:打开「服务」找到postgresql-x64-14,右键选择重启

3. 安装对应版本的EDB语言包

若未安装EDB Language Pack,需下载PostgreSQL 14适配的EDB Language Pack v2(内置Python 3.9),安装时选择与PostgreSQL一致的位数(x64),安装路径保持默认或记录准确,确保环境变量指向该路径。

4. 重新安装plpython3u扩展

打开psql命令行,执行以下操作:

-- 卸载已损坏的扩展(如果存在)
DROP EXTENSION IF EXISTS plpython3u;
-- 重新创建扩展
CREATE EXTENSION IF NOT EXISTS plpython3u;

5. 验证环境配置正确性

在psql中执行以下函数,检查Python路径是否正确:

CREATE OR REPLACE FUNCTION check_python_env()
RETURNS text AS $$
import sys
return str(sys.path)
$$ LANGUAGE plpython3u;

SELECT check_python_env();

返回结果若全为Python 3.9的路径,说明环境配置无误。


内容的提问来源于stack exchange,提问作者Mark Cowley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:24:56