【发布时间】:2012-03-06 15:10:40
【问题描述】:
当我在我的 Python 应用程序中调用 PostgreSQL PL/Python 存储过程时,它似乎在以用户 postgres 运行的单独进程中执行。到目前为止,这只产生了一个副作用,即我必须让我的日志文件对我自己和数据库用户都可写,因此应用程序和存储过程都可以写入它。
然而,现在我开始使用 virtualenv 并将一些 .pth 文件添加到我的 ~/.virtualenvs/virt_env/lib/python2.7/site-packages/ 文件夹中,这些文件将我的模块的路径添加到 Python 路径中。
存储过程执行时,用户postgres和我不在同一个虚拟环境,所以存储过程找不到我的模块。我可以在global PostgreSQL environment 中修改PYTHONPATH,但是每次切换虚拟环境时我都必须更改它——这有点违背 virtualenv 的目的......
如何扩展存储过程的 Python 路径?
更新:
已询问similar question,解决方案是修改 Postgres 中的 PYTHONPATH 环境变量;但是,似乎there is no standard way to specify environment variables for PostgreSQL;至少,它在 Mac OSX 上不是一个可行的解决方案。
【问题讨论】:
标签: python postgresql stored-procedures virtualenv plpython