Para poder utilizar el lenguaje plpython en PostgreSQL, es necesario instalar los paquetes de python y postgresql-plpython. Realizado esto, podremos conectarnos a PostgreSQL, y en la base de datos que lo necesitemos, habilitar plpython utilizando un comando CREATE LANGUAGE plpythonu, y hecho esto, ya podremos crear código plpython en dicha base de datos. Fácil y sencillo.
Sin embargo, en el caso de ejemplo que nos ocupa, tenemos instalado PostgreSQL 9.2.19 sobre Centos7. La instalación la hemos realizado desde los RPMs oficiales que nos hemos bajado de PostgreSQL. Sin embargo, al intentar instalar el paquete postgresql92-plpython (en particular, el paquete postgresql92-plpython-9.2.19-2PGDG.rhel6.x86_64.rpm) obtenemos el siguiente error, y eso teniendo Python instalado: libpython2.6.so.1.0()(64bit) is needed by postgresql92-plpython-9.2.19-2PGDG.rhel6.x86_64
Evidentemente, si nos conectamos a PostgreSQL e intentamos habilitar el lenguaje plpython (CREATE LANGUAGE plpythonu) obtenemos un mensaje de error: ERROR: could not access file “$libdir/plpython2”: No such file or directory
Tras unos cuantos intentos fallidos de hacerlo funcionar, utilizando distintas versiones de Python, y haciendo varios tipos de pruebas más, finalmente encontramos el error, un error de principiante: Tenemos un Centos7 sobre el cual hemos instalado los RPMs de Centos6 (rhel6) en lugar de los de Centos7 (rhel7), y aunque en principio parece que todo funciona, hay alguna cosa como esta que no.
Desinstalamos los RPMs de Centos6 (rhel6), instalamos los de Centos7 (rhel7), y ahora sí que podemos instalar correctamente y a la primera el RPM de postgresql92-plpython.
Y por supuesto, podemos habilitar el lenguaje plpython en cualquiera de las bases de datos (CREATE LANGUAGE plpythonu).
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.
|