如何在Windows 7上安装PostgreSQL 9.3的PL/Python?

6 投票
2 回答
17800 浏览
提问于 2025-04-18 09:45

我尝试在我的数据库中安装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

有没有什么自动化的方法来安装这个?我需要在很多台电脑上安装它。

2 个回答

0

在我的情况下,只需要安装Python 3.3就可以了。之前我有2.7和3.4版本,但都不是我需要的那个。

我在Windows 7上运行的是PostgreSQL 9.4 x64。

12

通常,这个错误信息是Windows系统在调用LoadLibrary时发出的一个误导性提示。它实际上想表达的是:

加载plpython2.dll时出错:在PATH中找不到依赖的DLLpython27.dll

但Windows表现得像是plpython2.dll本身无法加载。

你可以通过检查PostgreSQL安装目录中的lib文件夹来判断是否是这个问题,看看里面有没有plpython2.dll。如果有这个文件,但你还是遇到这个错误,那就是缺少Python运行环境。如果根本没有plpython2.dll,那么你的PostgreSQL安装缺少plpython2,这是我会向打包团队反映的

如果你有plpython2.dll但它无法加载,你需要安装与PostgreSQL版本匹配的Python运行环境。必须使用与编译PostgreSQL时相同的Python主版本,比如如果PostgreSQL是用Python 2.7编译的,那么Python 2.6就无法运行plpython。

如果安装所需的运行环境能通过安装程序自动完成,那就太好了,但目前还没有。而且这方面的文档也不够完善,我会和打包团队讨论这个问题 现在正确的运行环境安装信息已在安装目录下的doc\installation-notes.html中记录,你也可以通过开始菜单中的PostgresSQL 9.3 -> 文档 -> 安装说明找到。

对于那些在“安装说明”文件中缺少此信息的旧版本,如果你不确定需要哪个版本的Python,可以使用depends.exe(依赖项查看器)来查看它链接到哪个Python DLL。你还需要确保Python的架构与PostgreSQL一致——如果你安装的是64位的PostgreSQL,就需要64位的Python,等等。

PostgreSQL 9.3的安装包需要Python 2.7。所以去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-2.7.3.amd64.msi是你安装的Python二进制文件名,你将64位版本安装到C:\Python27_x64。可以根据需要进行调整。

撰写回答