问题标签 [plpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1577 浏览

python - PL/Python 与 Anaconda

我在 Ubuntu 上安装了 Anaconda,想在 PL/Python 中使用它的一些模块。但是,每次我调用 scipy 时,都会出现ImportError 错误:没有名为 scipy.stats 的模块。

如何让 Anaconda 与 PL/Python 一起工作?

更新:以下是代码和错误

创建或替换函数 hdi_bars(分子整数,分母整数)返回 SETOF 双精度 [] AS $BODY$

从 scipy.stats 导入 beta 导入 numpy 作为 np 从 scipy.stats 导入 beta 导入 numpy 作为 np

$BODY$ LANGUAGE plpythonu 挥发性成本 100 ROWS 1000; ALTER FUNCTION hdi_bars(integer, integer) OWNER TO postgres;

错误:错误:ImportError:没有名为 scipy.stats 的模块 上下文:回溯(最后一次调用):PL/Python 函数“hdi_bars”,第 5 行,从 scipy.stats 导入 beta PL/Python 函数“hdi_bars”

********** 错误 **********

错误:ImportError:没有名为 scipy.stats 的模块 SQL 状态:XX000 上下文:回溯(最后一次调用):PL/Python 函数“hdi_bars”,第 5 行,从 scipy.stats 导入 beta PL/Python 函数“hdi_bars”

0 投票
1 回答
347 浏览

python - 如何使 PL/Python 回溯更加冗长?

目前,如果出现错误,我在 PL/Python 过程中有这样的回溯psql,它导入 Python 模块并从中调用一些函数:

我尝试设置log_error_verbosity = verbosepostgresql.conf设置此环境变量PYTHONVERBOSE=1 PYTHONDEBUG=1。没有任何帮助。

谁知道,如果可能的话,如何将它设置得更详细?

0 投票
1 回答
325 浏览

sql - plpython,postgresql(ubuntu)中没有这样的目录错误

我安装了以下软件包:

但是在使用时:

抛出错误:

我在这里想念什么?

0 投票
2 回答
352 浏览

postgresql - 使用 plpy.error 或自定义 SPIError 传递自定义错误代码 (ERRCODE)

是否可以传递自定义错误代码plpy.error/fatal或继承SPIError传递自定义 ERRCODE、HINT 等?

0 投票
0 回答
1313 浏览

python - 在 PostgreSQL 中使用 PL/Python 函数调用 Python 脚本文件

我正在尝试从用 PL/Python 编写的 PostgreSQL 函数调用外部 Python 脚本文件。

我的直觉驱使我编写这样的代码:

但是当我执行SELECT foo()它时,它会返回此错误消息:

我用谷歌搜索了它,显然它处理的是执行权限问题。但我真的不确定...

所以让我问一下是否真的可以做我想做的事情以及我是否使用好的方法?

如果答案是肯定的,我该如何管理我的 PosgreSQL 用户和脚本文件所有者之间的执行权限问题?

先感谢您,

马丁

0 投票
1 回答
287 浏览

postgresql - 不允许使用语言 plpython3u

我正在研究 debian jessie

我已经安装了语言:

然后 :

然后 :

我试过这个功能:

我试图强制分贝:

我收到消息,它已经安装了,所以我不知道该怎么做??

0 投票
1 回答
714 浏览

postgresql - python函数是如何编译和存储在​​PostgreSQL中的?

设想:

  1. 我在某个地方的磁盘上有一个 python 函数。
  2. 我在 pg 服务器中编译了一个 plpythonu 函数,它引用了磁盘上第 1 步中的那个 python 函数。
  3. 我更改了 python 函数中的某些内容(从步骤 1 开始)。
  4. 如果我编译 plpythonu 函数(从步骤 2 开始),从 pg 服务器调用时,步骤 3 中所做的更改不会生效。

此类函数的示例可以在我的另一个问题中看到: Python function hangs when called from within sql function

我的假设(这在我看来是什么):

  • PG 服务器在第一次编译时将 python 函数(步骤 1)代码和 plpythonu 代码存储在某个地方,在哪里?
  • 重新编译(步骤 4)plpythonu 函数时,它不会再次检查链接函数(步骤 1)。这种行为可以以某种方式改变或影响吗?

如果这些假设是错误的,还请纠正我并解释。或者甚至指向我可以找到它的文档,我还没有成功找到它。

0 投票
1 回答
320 浏览

postgresql - 使用 postgresql 检查主键约束的慢触发器

我正在尝试使用 plpythonu 触发器(check_pk)沿 postgresql 中的继承树检查主键约束。我正在使用(PostgreSQL)9.4.5。

我的问题是为什么插入或更新至少需要 50 毫秒,而触发器本身的执行最多需要 5 毫秒?难道我做错了什么?有没有办法改善这一点?

编码

( git@github.com:collorg/oopg.git )

表格:

我正在使用三个表进行测试parentchildb并且childc(请参阅下面的触发器):

测试:

这是 postgresql 日志的摘录(我在 postgresql.conf 中将 log_min_duration_statement 设置为 10 ms):

当 check_pk 触发器的执行需要 4.5 毫秒时,更新需要 71.940 毫秒。

触发:

0 投票
1 回答
1867 浏览

postgresql - 从另一个 PL/Python 块调用 postgres PL/Python 存储函数

是否可以从其他 PL/Python 块调用 PL/Python 函数作为普通 Python 函数。

例如,我有一个函数 f1:

我想从其他函数或块调用这个函数,例如这个匿名块:

这可以使用 来完成t = plpy.execute("select f1()"),但如果可能的话,我希望将其作为普通 Python 函数调用以避免类型转换(例如 jsonb 等)。

(我正在使用 plpython3u ~ Python 3)。

0 投票
2 回答
4192 浏览

python - PostgreSQL 无法创建 plpythonu 扩展

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

这会产生以下错误消息:

我也尝试过运行:

导致此错误:

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