【发布时间】:2019-09-03 14:52:44
【问题描述】:
我在MacOS 上的postgres 数据库上使用plpython3 存储函数(与标准企业数据库包一起安装)。
我可以导入标准的python包,例如:
CREATE OR REPLACE FUNCTION foo(x double precision)
RETURNS double precision
LANGUAGE plpython3u
AS $$
import math
...
$$
我不能,但是导入我安装在我机器上的常规 python3 目录中的包,该目录由 brew 定义:
$ which python3
/usr/local/bin/python3
所以import foo 将无法工作,即使它可以在常规 python3 环境中工作。
在运行plpython3u 时,PostgreSQL 服务器是否可能没有使用与我相同的 python3 环境? (也许它正在使用 python3 解释器,这是 MacOS 等的标准问题。)如果发生这种情况,我该如何检查以及如何更正配置?
事实上,我创建了一个存储函数get_py,它执行以下操作:
import os
return os.popen('which python').read()
它返回了:
> select get_py()
+-----------------+
| get_py |
|-----------------|
| /usr/bin/python |
+-----------------+
(which python3 什么都没有)。这似乎表明它没有使用我想要的解释器!
我该如何更改?
配置信息
-
PostgreSQL 11.5onx86_64-apple-darwin,由 Apple LLVM 6.0 版编译 - 我在这里没有使用任何
virtualenv。
【问题讨论】:
标签: python python-3.x postgresql macos plpython