繁体   English   中英

在 Windows 上为 PostgreSQL 12 安装 PL/Python

[英]Install PL/Python on Windows for PostgreSQL 12

我一直在为一个项目研究 FHIR,我们正在使用 PostgreSQL 作为数据库。 在阅读文档时,我开始了解 PL/Python 并决定试一试,但我无法安装 python 扩展。

当我运行命令CREATE EXTENSION pypthon3u; 我收到以下错误

Could not load library "C:/Program Files/PostgreSQL/12/lib/plpython3.dll": The specified module could not be found.

我已经检查了这个SO 答案,但它无济于事。

我的 PostgreSQL 版本: PostgreSQL 12.2,由 Visual C++ build 1914 编译,64 位

安装的 Python 版本: 3.7.7(64 位)

操作系统信息: Windows 10 企业1909操作系统内部版本18363.657

对我来说,它看起来像是不正确的 Python 版本,但我正在安装 python 3.7.* 版本,根据安装目录内的doc\installation-notes.html中指定的方式编译 PostgreSQL。

任何帮助将不胜感激。

即使您使用 EDB 安装程序的 Stack Builder 安装 Python,您仍然必须按照说明“确保它们包含在启动数据库服务器的 PATH 变量中”。 我必须在系统级别执行此操作,因为我找不到为单个服务设置 PATH 的方法。

然后你还需要设置 PYTHONPATH ,这似乎没有记录。

所以我最终将c:\edb\languagepack\v1\Python-3.7添加到 PATH 并使用c:\edb\languagepack\v1\Python-3.7\Lib创建 PYTHONPATH 。

我必须添加包含 plpython3.dll 的目录做系统/用户变量(windows)。

我也在尝试同样的方法。 虽然我不是专家,而且我的错误有点不同,但这里有几件事需要检查:

  • share\extension\下,应该有plpython3u.controlplpython3u--1.0.sql能够做CREATE EXTENSION plpython3u;
  • 确保您在上面的命令中没有任何拼写错误。
  • lib\下,应该有一个plpython3.dll 这可能是在上述步骤之后创建的。
  • 确保lib\在您的PATH中。
  • PYTHONHOME应该在系统/用户环境中设置,或者应该在服务器启动之前设置。 似乎版本没有设置这个名称那么重要。 plpython3.dll似乎在寻找一个python39.dll但我可以在 3.8 安装中使用它。

我使用了 Postgres 的压缩版本,所以下面是我运行服务器的方式。

set PATH=%PATH%;d:\pgsql\bin\;d:\pgsql\lib\
set PYTHONHOME=c:\DevTools\Python\Python38
pg_ctl -D d:\pgsql\pgdata -l logfile start

PS:没有PYTHONHOME ,服务器崩溃。 服务器本身或psql重新启动服务器,但我不确定pgAdmin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM