如何在Windows 7上安装PostgreSQL 9.3的PL/Python?
我尝试在我的数据库中安装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 个回答
在我的情况下,只需要安装Python 3.3就可以了。之前我有2.7和3.4版本,但都不是我需要的那个。
我在Windows 7上运行的是PostgreSQL 9.4 x64。
通常,这个错误信息是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
。可以根据需要进行调整。