【问题标题】:Install PL/Python on Windows for PostgreSQL 12在 Windows 上为 PostgreSQL 12 安装 PL/Python
【发布时间】:2020-03-14 14:26:53
【问题描述】:

我一直在为一个项目开发 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 Enterprise 版本 1909 操作系统构建 18363.657

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

任何帮助将不胜感激。

【问题讨论】:

  • 不幸的是,我在一两个月前安装了它,所以我不确定,但我使用了这个文件 (postgresql-12.2-1-windows-x64.exe)安装数据库。
  • PL/Python 未安装。您必须先安装二进制文件,然后才能创建扩展。
  • 你能指导我如何安装二进制文件吗?
  • @LaurenzAlbe Is this 你在说什么?
  • 这看起来像 EDB 安装程序。如果您使用它,并让它启动 Stack Builder,并安装语言包,它应该安装自己的 python。这是你做的,还是你从其他地方安装了 python?

标签: python postgresql plpython postgres-plpython


【解决方案1】:

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

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

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

【讨论】:

  • 我没有使用 EDB 安装程序。根据您的建议,我已将 PYTHONPATH 添加到路径并作为用户变量,但仍然出现相同的错误。
  • PYTHONPATH 和 PATH 是两个独立的变量,您不要将一个设置为另一个,而是单独设置它们。在我手中,仅设置 PATH 就足以允许创建扩展,但是在设置 PYTHONPATH 之前它无法正常工作。
  • 是的,我知道两者是不同的。我将python添加到路径中,但它不起作用。请记住,我没有使用 EDB,而是从他们的官方网站安装了 python。
  • 然后我添加了 PythonPath 但没有运气。
  • 我已经重新安装了 PostgreSQL 并使用 EDB 语言包安装了 python。 c:\edb\languagepack\v1\Python-3.7 到 PATH 并添加了 PYTHONPATH 和 c:\edb\languagepack\v1\Python-3.7\Lib 但仍然遇到相同的错误。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多