【发布时间】:2015-09-07 07:16:24
【问题描述】:
可以在 PostgreSQL 存储过程中包含 Python 代码。例如:
CREATE FUNCTION someProc()
RETURNS void AS $$
# Some Python3 code...
$$ LANGUAGE plpython3u;
但是我怎样才能在这段代码中包含一个 python 文件呢?
在PostgreSQL中运行的Python的当前目录是这样的:
>>> os.getcwd()
... /var/lib/postgresql/9.3/main
我尝试了以下方法,效果很好:
CREATE FUNCTION someProc()
RETURNS void AS $$
import sys
sys.path.append("/dir/to/file")
from python_file import pythonFunction
# More Python code
$$ LANGUAGE plpython3u;
由于许多明显的原因,这似乎不太好。有没有更好的方法来导入 python 文件,或者只是从 python 文件中调用 python 函数?
编辑: 没有任何特定的 PostgreSQL 方法可以导入文件。但最好的方法是在下面的正确答案中,这类似于我原来的解决方案,但更好。
【问题讨论】:
标签: python postgresql stored-procedures