6

我试图在运行查询的数据库上的 PostgreSQL 中安装 PL/Python v2.x 语言:

CREATE EXTENSION plpythonu;

(我从http://www.postgresql.org/docs/9.3/static/plpython.html得到这个)

但我收到了这个错误:

ERRO:  não pôde acessar arquivo "$libdir/plpython2": No such file or directory
********** Error **********
ERRO: não pôde acessar arquivo "$libdir/plpython2": No such file or directory
SQL state: 58P01

如何以自动方式安装它?我需要在多台计算机上安装它。

4

2 回答 2

12

LoadLibrary通常,此错误消息是由 Windows API调用发出的误导性消息。它的实际含义更接近于:

加载时出错plpython2.dll:找不到依赖python27.dllDLLPATH

但相反,Windows 只是表现得像是plpython2.dll无法加载的自身。

您可以通过检查libPostgreSQL 安装目录中的plpython2.dll. 如果它在那里,但您收到此错误,那么它是缺少 Python 运行时。如果根本没有plpython2.dll,那么您的 PostgreSQL 安装缺少 plpython2,这是我与包装团队提出的

如果有plpython2.dll但无法加载,则需要安装与 PostgreSQL 版本匹配的 Python 运行时。它必须与用于编译 PostgreSQL 的 Python 主要版本相同,例如,如果使用 Python 2.7 编译 PostgreSQL,则 Python 2.6 将无法运行 plpython。

如果通过安装程序自动安装所需的运行时会很好,但目前不是。它也没有正确记录,我将与包装团队讨论要安装的正确运行时现在记录在doc\installation-notes.html安装目录中,您也可以通过PostgresSQL 9.3 -> 文档 ->开始菜单中的安装说明.

对于在“安装说明”文件中缺少此信息的旧版本,如果您不确定需要哪个版本的 Python,您可以使用depends.exe(dependency walker)查看它链接到的 Python DLL。你也需要相同的 Python 架构——如果你要安装 64 位 PostgreSQL,你需要 64 位 Python,等等。

PostgreSQL 9.3 包需要 Python 27。所以从http://python.org/下载 Python 2.7 (不是 ActiveState,它们不一定兼容)。确保安装程序将 Python 添加到PATH(运行安装程序时这是一个选项)。然后重新启动PostgreSQL后重试。

您可以使用以下命令自动安装 Python:

start /wait msiexec /i python-2.7.3.amd64.msi /qb /passive TARGETDIR=%SystemDrive%\Python27_x64 ALLUSERS=1

您安装的 Python 二进制文件的文件名在哪里python-2.7.3.amd64.msi,并且您正在将 64 位版本安装到C:\Python27_x64. 根据需要进行调整。

于 2014-06-14T09:18:48.613 回答
0

在我的情况下,它只安装了 Python 3.3。以前我有 2.7 和 3.4,但它们都不是它想要的。

我在 Windows 7 上运行 PostgreSQL 9.4 x64

于 2015-11-01T22:45:00.027 回答