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

时间:2014-06-14 04:39:19

标签: python postgresql windows-7-x64 postgresql-9.3 plpython

我试图在运行查询的数据库中在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

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

2 个答案:

答案 0 :(得分:10)

通常,此错误消息是Windows API LoadLibrary调用发出的误导性消息。实际意味着更接近:

  

加载plpython2.dll时出错:在python27.dll上找不到依赖关系DLL PATH

但是Windows只是表现得像plpython2.dll一样无法加载。

您可以通过检查lib的PostgreSQL安装的plpython2.dll目录来判断这是否是问题。如果它存在,但是你得到了这个错误,那么它就是一个缺少的Python运行时。如果根本没有plpython2.dll,那么your PostgreSQL install is missing plpython2, something I'm raising with the packaging team

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

如果通过安装程序自动安装所需的运行时很好,但目前它并非如此。 It's also not properly documented, which I'll take up with the packaging team 安装目录中的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-2.7.3.amd64.msi是您安装的Python二进制文件的文件名,并且您正在将64位版本安装到C:\Python27_x64。根据需要进行调整。

答案 1 :(得分:0)

就我而言,它只是安装Python 3.3。以前我有2.7和3.4,但不是它们想要它。

我在Windows 7上运行PostgreSQL 9.4 x64