我试图在运行查询的数据库中在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
如何以自动方式安装?我需要在许多计算机上安装它。
答案 0 :(得分:10)
通常,此错误消息是Windows API LoadLibrary
调用发出的误导性消息。实际意味着更接近:
加载
plpython2.dll
时出错:在python27.dll
上找不到依赖关系DLLPATH
但是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