PostgreSQL:如何安装plpythonu扩展

PostgreSQL:如何安装plpythonu扩展,python,postgresql,Python,Postgresql,我正在Ubuntu 12.04.4上运行PostgreSQL 9.3.1。我想使用plpython语言扩展,但是当我尝试使用它时,我得到一个错误: 错误:语言plpythonu不存在 当我尝试创建扩展时: 创建扩展plpythonu 我得到错误:无法访问文件$libdir/plpython2:没有这样的文件或目录 在对博客文章进行了大量搜索和挖掘之后,我尝试安装了其他软件包,并将所有plpython文件从/usr/share/postgresql/9.1/extension复制到了/opt/bi

我正在Ubuntu 12.04.4上运行PostgreSQL 9.3.1。我想使用plpython语言扩展,但是当我尝试使用它时,我得到一个错误:

错误:语言plpythonu不存在

当我尝试创建扩展时:

创建扩展plpythonu 我得到错误:无法访问文件$libdir/plpython2:没有这样的文件或目录 在对博客文章进行了大量搜索和挖掘之后,我尝试安装了其他软件包,并将所有plpython文件从/usr/share/postgresql/9.1/extension复制到了/opt/bitnami/postgresql/share/extension,而postgresql似乎正在寻找这些文件。这至少让我明白了PostgreSQL实际上可以看到可用的扩展。当我跑步时:

从pg_available_extensions中选择名称、默认_版本、已安装的_版本,其中的名称类似于'plpy*' 我得到:

    name    | default_version | installed_version 
------------+-----------------+-------------------
 plpython2u | 1.0             | 
 plpython3u | 1.0             | 
 plpythonu  | 1.0             | 

在/opt/bitnami/postgresql/lib中仍然没有我可以看到的plpython库。有人能帮我完成剩余的步骤,使扩展工作吗?提前谢谢

您使用的是来自Bitnami的PostgreSQL包,位于/opt中。现在还不清楚你是用apt-get还是通过安装程序脚本/程序安装了它,但在这两种情况下,它与Ubuntu PostgreSQL包中的PostgreSQL都不一样

安装postgresqlppython对您没有任何好处,因为您安装的PL/Python支持与实际使用的postgresql安装不同

如果有PL/Python支持,则需要使用最初用于安装Bitnami PostgreSQL的相同安装方法来添加PL/Python支持。它可能不是由Bitnami提供的

否则,如果您不太喜欢使用Bitnami的PostgreSQL,您可以使用推荐的软件包。

对于postgres 11.2,基于Debian的我需要安装:

apt-get update && apt-get install postgresql-plpython3-11

我正在运行Raspbian 10 buster/Linux raspberrypi 4.19.97-v7+1294,并运行以下命令在PostgreSQL 11.7上安装PL/Python 3

确定哪些版本可供安装: sudo apt get安装postgresql contrib postgresql-plpython3-11

sudo su-postgres

psql

创建扩展plpython3u

使用命令验证:


我已尝试安装其他软件包。确切地说是哪些附加包?将所有plpython文件从/usr/share/postgresql/9.1/extension复制到/opt/bitnami/postgresql/share/extension。不要那样做!你很幸运,PostgreSQL有健全的检查,以防止加载不兼容的模块和可能损坏进程内存。我相信我使用了sudo apt get install PostgreSQL contrib PostgreSQL plpython。。。您是如何安装bitnami PostgreSQL的?请注意,9.3.1有一些严重的错误,因此,如果您关心其中的数据,您应该及时升级。谢谢,Craig。我向Bitnami社区咨询过,不幸的是,他们的栈中还不支持PL/Python扩展,所以我会按照你的建议去做。这个答案需要对Ubuntu18LTS进行一些升级。sudo apt install postgresql-plpython什么都不做,它说包postgresql-plpython是一个虚拟包,由以下人员提供:postgresql-plpython-9.6,postgresql-plpython-9.7。。。postgresql-plpython-11`。。。所以,重要的是在回答中说如何选择正确的一个。还有另一个选择问题python3。。。并且/usr/share/postgresql/12/extension/plpythonu没有apt选项。control@PeterKrauss这是PostgreSQL 12 plpython扩展的一个组件。目前还不清楚您是如何安装PostgreSQL 12的,但您的存储库中还没有用于PostgreSQL 12的plpython。发布一个新的独立问题。我使用apt在第12页和Ubuntu 18上安装postgresql-plpython3-12。。。。但是在SQL上创建扩展plpythonu;假设错误:无法打开扩展控制文件/usr/share/postgresql/12/extension/plpythonu.control:没有用于创建扩展名plpython3u的此类文件或目录工作使用plpythonu函数将旧数据库升级到PG11或PG12时会发生什么情况?函数是否也需要将语言从plpythonu更改为plpython3u?
pi@raspberrypi:~/$ sudo apt-cache search ".*plpython3.*"
postgresql-plpython3-11 - PL/Python 3 procedural language for PostgreSQL 11
select * from pg_language;