当我在我的 Python 应用程序中调用 PostgreSQL PL/Python 存储过程时,它似乎是在以 user 身份运行的单独进程中执行的postgres
。到目前为止,这只产生了我必须让我的日志文件对我自己和数据库用户都可写的副作用,因此应用程序和存储过程都可以写入它。
然而,现在,我开始使用virtualenv
并将一些.pth
文件添加到我的~/.virtualenvs/virt_env/lib/python2.7/site-packages/
文件夹中,这些文件将我的模块的路径添加到 Python 路径中。
执行存储过程时,用户postgres
和我不在同一个虚拟环境中,所以存储过程找不到我的模块。我可以PYTHONPATH
在全局 PostgreSQL 环境中进行修改,但每次切换虚拟环境时都必须更改它——这有点违背 virtualenv 的目的......
如何扩展存储过程的 Python 路径?
更新:
已经提出了一个类似的问题,解决方案是修改 Postgres 中的 PYTHONPATH 环境变量;但是,似乎没有为 PostgreSQL 指定环境变量的标准方法;至少,它在 Mac OSX 上不是一个可行的解决方案。