I am writing function in postgres in python using the PL/Pythonu extension in postgres. I would like postgres to use my virutal environment (I am using virtualenv) instead of the global install. How do I go about doing this?
2 Answers
As it turns out, one must add the path to where the libraries are found to the PYTHONPATH environment variable in postgres. Don't forget to quote your value eg:
PYTHONPATH='path to libraries'
1 Comment
ssc
As described in stackoverflow.com/q/9586331/217844, this only seems to work in certain OSs. Ideally, Postgres should have a VIRTUALENV configuration setting.
Answered over at https://stackoverflow.com/a/24892335/5430
tl;dr - exec activate_this.py inside plpython function will set python interpretor for the life of the postgresql session.