在Windows上安装PL/Python for PostgreSQL 12

nszi6y05  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(4)|浏览(138)

我一直在为一个项目研究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 answer,但它不能帮助。
我的PostgreSQL版本:PostgreSQL 12.2,由Visual C++ build 1914编译,64位
安装的Python版本:3.7.7(64位)
操作系统信息:Windows 10企业版版本1909操作系统版本18363.657
对我来说,它看起来像是不正确的Python版本,但我正在安装python 3.7.* 版本,PostgreSQL在安装目录中的doc\installation-notes.html中指定编译。
如有任何帮助,我们将不胜感激。

yr9zkbsy

yr9zkbsy1#

即使您使用EDB安装程序的Stack Builder来安装Python,您仍然必须按照说明“确保它们包含在启动数据库服务器的PATH变量中”。我不得不在系统级别上这样做,因为我找不到为单个服务设置PATH的方法。
然后还需要设置PYTHONPATH,这似乎没有文档记录。
因此,我最终将c:\edb\languagepack\v1\Python-3.7添加到PATH中,并使用c:\edb\languagepack\v1\Python-3.7\Lib创建PYTHONPATH。

n3ipq98p

n3ipq98p2#

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

fnx2tebb

fnx2tebb3#

我也在尝试。虽然我不是Maven,我的错误有点不同,但这里有几件事需要检查:

  • 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

cidc1ykv

cidc1ykv4#

添加到路径不会有帮助,数据库将在Postgres用户下运行,因此将其添加到路径中没有任何好处,因为数据库运行者不是您

相关问题