python文件存储过程_从PostgreSQL存储过程导入python文件

本文探讨了在PostgreSQL存储过程中导入Python文件的方法。作者尝试了通过修改系统路径来实现导入,但寻求更加优雅的解决方案。
部署运行你感兴趣的模型镜像

本问题已经有最佳答案,请猛点这里访问。

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中的文件动态加载python代码没有区别:

如何导入给定完整路径的模块?

pl/python3(不可信)只是运行在postgresql后端进程中的cpython解释器,与它自己运行的操作系统用户postgresql相同。有一些区别——比如线程安全——它只是Python。

谢谢,尽管我不会把这看作是一个重复的问题,因为我来找一个特定的PostgreSQL存储过程方法来发现没有,而这个解决方案实际上是一个更通用的python方法。但再次感谢!

当然,提问是很有帮助的,现在这个问题会让人们在寻找pl/pgsql时找到更一般的答案。如果我认为这是100%的重复,我会把它作为一个dup关闭而不发布答案。

啊,好吧,我以为这个问题会被删除或是别的什么。很抱歉弄混了,再次感谢。

你从文件中看到这个了吗?

http://www.postgresql.org/docs/9.0/static/plpython.html

嗯,是的,我已经研究了文档,但是没有找到解决方案。

在plpython文档中,它指的是读取外部文件以加载python代码吗?我认为你没有完全理解这个问题。

您可能感兴趣的与本文相关的镜像

Dify

Dify

AI应用
Agent编排

Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值