当前位置: 首页 > 知识库问答 >
问题:

无法为postgres 12安装plpython

巫晋鹏
2023-03-14

首先,我的问题是在阅读了许多其他问题后发布的,比如这个问题在Windows上安装PL/Python for PostgreSQL 12以及以前方法和注释的各种试验。

但我在尝试使用pl/python时已经被困了大约一个半月。

我使用了edb postgresql-12.1-3-windows-x64包,包括

-PostgreSQL 12.1,由Visual C build 1914编译,64位

-pgadmin4作为gui

-语言包。

在语言包的顶部单独安装了不同版本的python(因为它不起作用)。现在我使用的是Python3.7.6v3。win32上的7.6:43364a7ae0[MSC v.1916 64位(AMD64)]

当我运行"创建扩展plpython3u;"

我得到了一条典型的错误消息“error:无法加载库”C:/Program Files/PostgreSQL/12/lib/plpython3。dll”:找不到指定的模块

我的理解是,基于阅读大量的文章和文章,需要两个要素

正确的python解释器

Python运行时需要匹配PostgreSQL文件夹中的文档所指示的PostgresSQL版本

程序语言pl/Perl、pl/Python和pl/Tcl包含在PostgreSQL的这个发行版中。服务器是使用这些语言解释器的LanguagePack社区发行版构建的。要从PostgreSQL中使用这些语言中的任何一种,请下载并安装适当的解释器,并确保它们包含在启动数据库服务器的PATH变量中。使用的版本如下所示-较新的次要(错误修复)版本也可以工作,但尚未测试:Python 3.7

运行plpython3时。在C:\程序文件\postgresql\12\lib中找到的DLL通过软件“依赖行者”我有各种结果,这取决于我安装的Python版本。

-当我使用python 3.7.6()32位时,它似乎在某种程度上起了作用。至少找到了依赖项,但在python dll的其他依赖dll中,它是红色的,带有一些问号:

在此处输入图像描述

-在运行PostgreSQL 64位时,我卸载了它,现在运行的是本文开头提到的Python3.7.6()64位。不知何故,它让事情变得更糟,因为我现在在python37dll前面只有一个问号,其他什么都没有。好像再也找不到了。为什么?

2.设置环境变量PATH和PYTHONHOME

现在留档https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/user-guides/language-pack-guide/12/EDB_Postgres_Language_Pack_Guide.1.09.html#和论坛帮助管理员https://postgresrocks.enterprisedb.com/t5/PostgreSQL/unable-to-install-pl-python-extension/td-p/4059/

提到更改环境变量PATH和PYTHONHOME的需要。类似于

set PYTHON_HOME=c:\edb\languagepack\v1\Python-3.7


set PATH=C:\edb\languagepack\v1\Python-3.7;C:\edb\languagepack\v1\Perl-5.26\bin;C:\edb\languagepack\v1\Tcl-8.6\bin;%PATH%

论坛提到你需要在命令提示符下更改这些内容。文档没有具体说明应该如何做,但我认为它是指python解释器本身

不管怎样,它都不起作用。当我使用命令提示符时,没有回答:没有错误,什么都没有。它只是在另一条线上重新开始。我学习了echo%PYTHON\u HOME%命令,似乎至少在会话中考虑了它。但我仍然有同样的错误。关于这一点,有人向我提到,命令提示符方法无论如何都是错误的,因为它需要通过命令方法运行postgresql。他告诉我,我需要将其作为windwow服务运行,但我不知道如何做到这一点。

我真的很想在被困了这么久之后继续前进,如果有任何见解,我将不胜感激。

共有1个答案

罗毅
2023-03-14

看看这条信息。错误:创建EXTENSION plpython3u;在PostgreSQL 9.6.0

对于PlPython,有两种解决方案:

  • 你想要使用一个特定的python版本

使用堆栈生成器!并在数据库版本中安装附加组件EDB语言包

 类似资料:
  • 我正在尝试在postgresql中使用python语言。大概是这样的: 但当我运行此命令时,会出现以下错误: 然后,我尝试通过执行以下命令来创建python语言的扩展: 这告诉我以下错误: 我检查了文件在那里。然后我阅读了一些关于修改postgresql文件的内容,方法是从源代码中编译postgres并使用python添加

  • 当我试图通过eclipse market place在eclipse kepler(java/j2ee版本)中安装cobertura插件时,我收到了以下错误消息。 无法完成安装,因为找不到一个或多个必需项目。正在安装的软件:eCobertura0.9.8.201007202152(ecobertura.feature.group0.9.8.201007202152) 缺少要求:eCobertura

  • 问题内容: 我在虚拟环境中安装boto3时遇到问题。 我已经按文件所说完成了。首先,我激活了虚拟环境。然后我做了一个: 现在我输入python 但是如果我导入boto,它会起作用 为什么在安装boto3时安装boto 2.38。我尝试关闭终端,然后重新打开。我应该重启Ubuntu计算机吗? 问题答案: 不要在虚拟环境中使用,因为它会忽略环境变量,因此引用您的 全局 pip安装。 因此,在激活环境的

  • 我是android开发新手。我成功生成了签名apk。它成功安装在android更高版本中。但是当我尝试在android kitkat版本中安装时,一旦我们单击“安装”按钮,它就会失败而没有任何错误消息。通过命令提示符尝试使用adb时,应用程序成功安装,安装调试也正常。“Kitkat中的直接apk安装失败”请帮助

  • 任何帮助都将得到高度赞赏。 谢谢,沙兹