postgresql plpython

postgresql - ¿Cómo instalar un módulo de terceros para postgres pl/python?



plpython (2)

Necesito importar un módulo de terceros dentro de mi función pl / python. Parece que pl / python usa un python interno que no tiene ningún módulo de terceros.

Me sale este tipo de error:

ERROR: PL/Python: PL/Python function "to_tsvector_luc" failed DETAIL: <type ''exceptions.ImportError''>: No module named lucene ********** Error ********** ERROR: PL/Python: PL/Python function "to_tsvector_luc" failed SQL state: XX000 Detail: <type ''exceptions.ImportError''>: No module named lucene

¿Cómo instalo el módulo en pl / python, para poder importarlo desde mi código de procedimiento almacenado?


Dado que la modificación de PYTHONPATH del usuario de Postgres probablemente necesitará un reinicio del servidor, es algo más fácil agregar la ruta desde Python, a través de

from sys import path path.append( ''/path/to/your/module'' )


pl / python tiene acceso a todos los módulos que tendría el intérprete de Python normal siempre y cuando estén en $PYTHONPATH en el servidor (y el usuario que ejecuta el servicio postgres). ¿ import lucene si lo ejecutas en el intérprete de Python en el servidor?

Si su módulo está instalado en otro lugar (por ejemplo, no en paquetes dist, etc.), deberá editar el /etc/postgresql/9.1/main/environment (ajustarse a su versión de PostgreSQL) en el servidor y agregar algo como PYTHONPATH=''<path to your module>'' .