【问题标题】:PostgreSQL unable to create plpythonu extensionPostgreSQL 无法创建 plpythonu 扩展
【发布时间】:2016-02-04 20:28:12
【问题描述】:

我正在尝试在 Windows 上的 PostgreSQL 中使用 Python 脚本在正文中编写函数,并且在尝试创建 plpythonu 扩展时遇到错误消息。我正在运行的命令是:

CREATE EXTENSION plpythonu;

这会产生以下错误消息:

ERROR: could not access file "$libdir/plpython2": No such file or directory
SQL state: 58P01

我也试过跑步:

CREATE EXTENSION plpython3u;

导致此错误:

ERROR: could not load library "C:/Program Files (x86)/PostgreSQL/9.2/lib/plpython3.dll": The specified module could not be found.
SQL state: 58P01

plpython3.dll 文件存在于此位置,但显然缺少一些关键依赖项。我到处搜索,发现对此没有任何帮助。我在机器上安装了 Python 2 和 3...

【问题讨论】:

  • 我遇到了同样的问题,我在 9.3,9.5,9.6 上尝试过,安装 pyton27 将其添加到路径中。到目前为止,网络上没有任何帮助。请帮忙

标签: python postgresql plpython


【解决方案1】:

来自 EnterpriseDB 的最新(9.4 或更高版本)二进制安装仅包含 plpython3u.dll。在 9.4 到 9.6 版本中,我必须安装 python 3.3 才能运行 plpython3u。

您可以使用Dependency Walker.检查plpython3u.dll需要哪个版本的Python

【讨论】:

    【解决方案2】:

    可以找到完整的答案: https://postgresrocks.enterprisedb.com/t5/PostgreSQL/unable-to-install-pl-python-extension/m-p/4090 它假定您已使用 stackbuilder 来安装 edb 语言包。 请检查安装中的命令是否正确。 例如。 postgresql 数据的路径,安装 edb 和 python 版本的路径。 当你使用依赖walker(depends.exe)时,只注意pythonxx.dll。对于较旧的 PG 版本,这可能与 EDB 语言包安装的版本一致,也可能不一致。对于 10.7 版,需要 3.4 版 Python。对于 windows,后来的 3.4 Python 版本似乎没有 msi 安装程序。您可能需要安装 3.4.4,或者先尝试将 PG 10 升级到最新版本(10.11)。这个版本需要python 3.7,所以你可以使用EDB下载。 但是python版本可能已经存在并且可以找到。 could not load library plpython3.dll(在 stackoverflow 上)有点接近,但没有详细说明所需的环境变量。 提出的解决方案不需要您永久更改环境变量,这在使用多个 python 安装时有很大帮助。

    【讨论】:

    • 您的建议终于奏效了。带有 EDB 的 Postgres10.12 已与 pl/python3u 一起使用。
    • 对于任何尝试使用 Postgres 和 Python 的人来说,这是最好的组合:Postgres10.12 + Python3.7。像魅力一样工作。
    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 2017-09-26
    • 2015-09-14
    • 1970-01-01
    • 2020-06-25
    • 2013-08-08
    • 2016-03-08
    • 2018-02-27
    相关资源
    最近更新 更多