Windows10下PostgreSQL14创建plpython3u扩展失败求助
核对Python与PostgreSQL的位数一致性
必须保证两者同为64位或同为32位,混合位数会直接导致动态链接库无法加载。PostgreSQL 14默认是64位版本,若你安装的是32位Python,就会触发该报错。验证Python核心DLL的可访问性
plpython3.dll依赖对应版本的Python核心DLL(如你的Python 3.11.8对应python311.dll),需确保该DLL在系统PATH中,或复制到PostgreSQL的lib目录(路径:C:/Program Files/PostgreSQL/14/lib)。可在命令行执行where python311.dll,确认是否能定位到该文件。确认PostgreSQL安装时已包含plpython3组件
默认安装PostgreSQL通常不会自动勾选plpython3扩展。重新运行PostgreSQL安装程序,选择「修改」模式,在扩展组件列表中确认勾选plpython3u相关选项,完成安装后重启PostgreSQL服务。检查Python安装路径的合法性
若Python安装在含空格或特殊字符的路径(如C:\Program Files\Python311),PostgreSQL加载库时可能出现路径解析错误。可将Python迁移至无空格的路径(如C:\Python311),更新系统环境变量后重启系统重试。用Dependency Walker排查依赖缺失
使用Dependency Walker工具打开PostgreSQL的plpython3.dll,查看是否存在未找到的依赖项(如系统DLL或Python相关组件),根据工具提示补充对应文件。调整PostgreSQL服务的运行账户
PostgreSQL默认使用本地系统账户运行,可能无权限访问Python安装目录。右键「此电脑」→「管理」→「服务和应用程序」→「服务」,找到PostgreSQL服务,在「登录」选项卡切换为你的当前用户账户,重启服务后再执行CREATE EXTENSION plpython3u;命令。
内容的提问来源于stack exchange,提问作者Mohamed Roshan

