Jim*_*Jim 19 python postgresql plpython
在postgres 9.2中,我试图创建一个可以作为触发器的python程序.我想运行一个外部程序(本地磁盘上的exe),所以我使用python来运行它.当我尝试创建一个这样的简单程序时:
CREATE FUNCTION one ()
RETURNS int
AS $$
# PL/Python function body
$$ LANGUAGE plpythonu;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ERROR: language "plpythonu" does not exist
HINT: Use CREATE LANGUAGE to load the language into the database.
Run Code Online (Sandbox Code Playgroud)
当我跑:
CREATE LANGUAGE plpythonu
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ERROR: could not access file "$libdir/plpython2": No such file or directory
Run Code Online (Sandbox Code Playgroud)
我使用的是Windows 7和python 2.5.
我在许多地方看过但找不到解决方案.
有任何想法吗?
几天前我刚刚解决了这个问题.解决方案非常复杂.在这里.
在Postgresql中使用'CREATE LANGUAGE plpython3u'命令来安装Python 3语言支持.通常情况下,它会给出以下错误"无法加载".....\plpython3.dll"错误126.(注意如果安装正确,将不会显示错误.)
如果您收到上述错误,请转到您的python安装目录(默认为C:\ python32)并在DLL的文件夹中查找"python3.dll".将此文件复制到Postgres安装目录中的Postgresql'lib'文件夹(默认为c:\ program files\postgres\9.x\lib \").将此复制的文件重命名为python32.dll.
现在再次运行'CREATE LANGUAGE plpython3u'命令.它应该这次工作.
要验证,请查看postgresql的系统表中的pg_available_extensions视图.包含plpython3u的行应在"已安装版本"列中具有版本号.
注意:这仅适用于plpython3u语言.我不知道plpython2u的任何类似过程.
要为plpython3解决此问题,有必要:
CREATE LANGUAGE plpython3u更新:我在这里写了一个更好的解释:https://stackoverflow.com/a/24218449/398670
Postgres使用Python的ActiveState发行版.最有可能的是,你的2.5太过时了,Postgres无法加载plpython dll或没有安装它,因为没有合适的python.我认为最近的postgres是针对Python3而不是2.x的build6.您可以在postgres lib目录中查找plpython3.dll以找出您需要的内容.
| 归档时间: |
|
| 查看次数: |
16950 次 |
| 最近记录: |