gpt4 book ai didi

python - PostgreSQL:创建扩展 plpythonu 查询在 Ubuntu 19.10 和 PostgreSQL 10.10 上不起作用

转载 作者:行者123 更新时间:2023-12-04 19:09:40 27 4
gpt4 key购买 nike

我正在使用 my_db=# CREATE EXTENSION IF NOT EXISTS plpythonu SCHEMA pg_catalog VERSION '1.0';查询 PostgreSQL 11.5 安装在 Ubuntu 19.10 创建 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 有什么问题?请指导我创建扩展程序应遵循的步骤。

最佳答案

看起来你在 postgresql 10 上安装了错误的版本 plpython3u。
你可以试试:
操作系统级安装:

  • 更新本地存储库
    适当的更新
  • 通过以下方式为您的数据库搜索支持的 plpython 版本
    apt-cache 搜索 plpython
  • 检查结果,为 postgres 10 plpython3u 找到正确的包,下面是我基于 debian 的 postgres dockers 容器中的示例列表

  • postgresql-plpython3-10 - PL/Python 3 procedural language forPostgreSQL 10 postgresql-plpython3-10-dbgsym - debug symbols forpostgresql-plpython3-10 postgresql-plpython3-11-dbgsym - debugsymbols for postgresql-plpython3-11 postgresql-plpython3-12 -PL/Python 3 procedural language for PostgreSQL 12postgresql-plpython3-12-dbgsym - debug symbols forpostgresql-plpython3-12 postgresql-plpython3-13 - PL/Python 3procedural language for PostgreSQL 13 postgresql-plpython3-13-dbgsym

    • debug symbols for postgresql-plpython3-13

  • 安装正确的包 pg10 + plpython3u 而不是调试版本
    易于安装 postgresql-plpython3-10

  • Postgresql 级别安装和配置
    1.连接到您的 postgresql 10 DB 并通过创建扩展

    =# create extension plpython3u;CREATE EXTENSION


  • 通过
  • 检查准备情况

    =# \dxList of installed extensionsName | Version | Schema | Description------------+---------+------------+------------------------------------------- plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural languageplpython3u | 1.0 | pg_catalog | PL/Python3U untrusted procedurallanguage (2 rows)


  • 通过以下方式运行第一个 plpython3u 函数 pymax:
    <DB name>=# CREATE FUNCTION pymax (a integer, b integer)
    RETURNS integer
    AS $$
    if a > b:
    return a
    return b
    $$ 语言 plpythonu;

  • 如果一切正常,你就有了第一个 plpython3u 函数。享受。
    注意:您可能需要先通过 apt install python3 安装 python3

    关于python - PostgreSQL:创建扩展 plpythonu 查询在 Ubuntu 19.10 和 PostgreSQL 10.10 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59730147/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com