我正在尝试在postgresql中使用python语言。如下所示:
create or replace function test(_a integer) returns integer as $$
if _a%2==0:
return 'even'
elif _a%3==0:
return 'mult of 3'
else:
return _a
$$ language plpython3u但是当我运行这段代码时,我得到了这个错误:
ERROR: language "plpython3u" does not exist
HINT: Use CREATE EXTENSION to load the language into the database.
SQL state: 42704然后,我尝试通过执行以下命令来创建python语言的扩展:
create extension plpython3u它告诉我以下错误:
ERROR: could not load library "C:/Program Files/PostgreSQL/12/lib/plpython3.dll": The specified module could not be found.
SQL state: 58P01我检查了plpython3.dll文件是否在那里。然后,我读到了一些关于通过从源代码编译postgres并添加--with python来修改postgresql configure文件的内容(我找到了其中的一些here)。
我的问题是我不知道如何真正做到这一点。我的操作系统是windows server 2019 64位,python版本是3.7.4,postgresql版本是12.2-1 (pgadmin 4.18)。
我该如何解决这个问题呢?
发布于 2020-10-23 03:23:35
让python与postgres协同工作似乎依赖于版本或版本。我目前使用的是postgres 9.6。我已经安装了python 3.9。我之前在postgres中安装了扩展plpython3u,但随着时间的流逝,我转移到了另一台计算机上。当我试图运行一个基于Python的过程时,我得到了一个错误。我从这里:https://www.opcsupport.com/s/article/How-do-I-figure-out-why-my-DLL-is-failing-Microsoft-Dependency-Walker或这里:https://www.dependencywalker.com/下载了依赖遍历。当我打开依赖遍历时,我将plpython3.dll拖入依赖遍历,.dll位于这里:f:\pg96lib。然后,我看到了下面的屏幕,似乎表明我需要安装Python3.7。我从这里下载了Python3.7:https://www.python.org/downloads/windows/。我的python过程现在可以工作了。

发布于 2020-06-09 13:58:04
不需要从源代码构建,这将需要您安装C编译器,这在Windows上是很重要的。
您从来没有告诉我们python3.dll是否存在于目录中,所以我假设它就在那里。然后,该错误将指示缺少python3.dll链接的共享库,很可能是Python3中的共享库。安装Python3可能会解决这个问题。
https://stackoverflow.com/questions/62274910
复制相似问题