PostgreSQL:创建扩展程序plpythonu查询不适用于Ubuntu 19.10和PostgreSQL 10.10

我在安装在 Ubuntu 19.10 上的 PostgreSQL 11.5 中使用my_db=# CREATE EXTENSION IF NOT EXISTS plpythonu SCHEMA pg_catalog VERSION '1.0';查询来创建 plpythonu扩展。但是我遇到以下错误:

ERROR:  could not open extension control file "/usr/share/postgresql/10/extension/plpythonu.control": No such file or directory

要安装 plpythonu软件包,我使用了sudo apt-get update && apt-get install postgresql-plpython3命令,该命令已成功安装。然后,我检查了/usr/share/postgresql目录,本例中有 10 11 个目录。我搜索了错误,然后找到了PostgreSQL: how to install plpythonu extensionPostgres database crash when installing plpython帖子,并按照了答案,但是在我的情况下它们没有用。另外,我在Chapter 43. PL/Python - Python Procedural Language的文档中对此进行了阅读,但仍然找不到解决该错误的解决方案,并且无法在数据库中创建plpythonu扩展。现在,我想知道是否应该删除或卸载任何东西,或者我的PostgreSQL有问题吗?请指导我执行创建扩展程序应遵循的步骤。

leigumeng 回答:PostgreSQL:创建扩展程序plpythonu查询不适用于Ubuntu 19.10和PostgreSQL 10.10

看起来您在Postgresql 10上安装了错误的版本plpython3u。

您可以尝试:

操作系统级别安装:

  1. 通过以下方式更新本地存储库

    apt更新

  2. 为您的数据库搜索受支持的plpython版本

    apt-cache搜索plpython

  3. 检查结果,找到适合postgres 10 plpython3u的软件包,以下是基于debian的postgres dockers容器中的示例列表

postgresql-plpython3-10-PL / Python 3过程语言 PostgreSQL 10 postgresql-plpython3-10-dbgsym-的调试符号 postgresql-plpython3-10 postgresql-plpython3-11-dbgsym-调试 postgresql-plpython3-11的符号postgresql-plpython3-12- PostgreSQL 12的PL / Python 3过程语言 postgresql-plpython3-12-dbgsym-的调试符号 postgresql-plpython3-12 postgresql-plpython3-13-PL / Python 3 PostgreSQL 13的过程语言postgresql-plpython3-13-dbgsym

  • postgresql-plpython3-13的调试符号
  1. 安装正确的软件包pg10 + plpython3u,而不通过以下版本调试版本

    apt安装postgresql-plpython3-10

PostgreSQL级别的安装和配置

1。连接到您的Postgresql 10 DB并通过创建扩展名

=#创建扩展名plpython3u; 创建扩展

  1. 检查准备情况

=#\ dx 已安装扩展的列表 姓名|版本|架构|描述 ------------ + --------- + ------------ + -------------- ----------------------------- plpgsql | 1.0 | pg_catalog | PL / pgSQL过程语言 plpython3u | 1.0 | pg_catalog | PL / Python3U不受信任的过程 语言(2行)

  1. 通过以下方式运行第一个plpython3u函数pymax:

    <DB name>=# CREATE FUNCTION pymax (a integer,b integer)
     RETURNS integer
     AS $$
     if a > b:
         return a
     return b
    

    $$ LANGUAGE plpythonu;

如果一切正常,则您具有第一个plpython3u函数。享受。

注意:您可能需要先通过apt install python3安装python3

本文链接:https://www.f2er.com/2773075.html

大家都在问