使用Dockerfile
我可以完美地运行plpython3u
FROM postgres:11.3
RUN apt-get update && apt-get install -y postgresql-plpython3-11
CREATE OR REPLACE FUNCTION return_version()
RETURNS VARCHAR
AS $$
import sys
return sys.version
$$ LANGUAGE plpython3u;
3.5.3(默认,2020年7月9日13:00:10)[GCC 6.3.0 20170516]`
但我不能使用依赖项,例如请求
[38000] ERROR: ImportError: No module named 'requests'
Where: Traceback (most recent call last): PL/Python function "return_version", line 3,
in <module> import requests PL/Python function "return_version"
第一次尝试执行呼叫
CREATE OR REPLACE FUNCTION return_pip()
RETURNS VARCHAR AS $$
from subprocess import call
return call(["pip", "install", "requests"])
$$ LANGUAGE plpython3u STABLE ;
没有希望
[38000] ERROR: FileNotFoundError: [Errno 2] No such file or directory: 'pip' Where: Traceback (most recent call last): PL/Python function "return_ls", line 3, in <module> return call(["pip", "install", "requuest"]) PL/Python function "return_ls", line 246, in c ...
第二次尝试
CREATE OR REPLACE FUNCTION return_version()
RETURNS VARCHAR
AS $$
import sys
from subprocess import call
return call(["pip3", "install", "requests"])
import requests
res = requests.get('https://google.com')
print(res.text)
return res.text
$$ LANGUAGE plpython3u;
得到错误
SELECT return_version()
[2020-09-29 10:59:44] [38000] ERROR: FileNotFoundError: [Errno 2] No such file or directory: 'pip3'
[2020-09-29 10:59:44] Where: Traceback (most recent call last):
[2020-09-29 10:59:44] PL/Python function "return_version", line 4, in <module>
[2020-09-29 10:59:44] return call(["pip3", "install", "requests"])
[2020-09-29 10:59:44] PL/Python function "return_version", line 246, in call
[2020-09-29 10:59:44] PL/Python function "return_version", line 675, in __init__
[2020-09-29 10:59:44] PL/Python function "return_version", line 1281, in _execute_child
[2020-09-29 10:59:44] PL/Python function "return_version"
我遇到一个相似的人问同样的问题,但没有回答
问题:
如何在plpython3u
下安装和运行python依赖项?
感谢@AdrianKlaver的回答
跟着这个。我可以得到响应
CREATE EXTENSION plpython3u;
in SQL shellpip3 install requests
In OS(aka container)CREATE OR REPLACE FUNCTION return_version()
RETURNS VARCHAR
AS $$
import requests
res = requests.get('https://google.com')
return str(res.text)
$$ LANGUAGE plpython3u;
我正在尝试在postgresql中使用python语言。大概是这样的: 但当我运行此命令时,会出现以下错误: 然后,我尝试通过执行以下命令来创建python语言的扩展: 这告诉我以下错误: 我检查了文件在那里。然后我阅读了一些关于修改postgresql文件的内容,方法是从源代码中编译postgres并使用python添加
我试图抓住"模块未找到"的想法时导入一个Python包在plpython3u过程中,我不知道如何使用接受的答案,使它在Linux上运行。通常情况下,这里应该是重复的,但是如果在使用的路径上与MacOS有差异,那么对于一个新问题来说可能是好的。 我在WSL2上(Ubuntu 20.04)。我安装了来自Ubuntu PostgreSQL Apt存储库的官方PostgreSQL下载页面的命令。 这给了我
我正在尝试安装一个没有依赖项的python模块。 我跑: 但是这个安装依赖项,任何想法怎么能做到这一点?
我想在python 3.7.4做: 得到这个错误: 我已经试过了: 使用和 使用本地windows和windows服务器 多次重新安装不同版本的软件包(例如和) Traceback(最近一次调用最后一次):文件"c:/用户/管理员/文档/GitHub/合同-标准-标识符-on-aws/schnelltest.py",第1行,在导入gensim文件"C:\用户\管理员\AppData\本地\程序\P
问题内容: 我正在创建 setup.py 来分发我的应用程序。该应用程序具有许多可通过pip安装的依赖项,还具有一些无法从PyPI安装的自定义依赖项。 因此,我创建了一个将包含在发行版中的,并且必须在 setup.py 从安装了所有内容之后作为依赖项进行安装。 想象以下应用程序结构: 我怎么做? 问题答案: 可能但不确定应使用哪个setuptools版本。脚步: 在setup.py中 重要的是您的