我有一个Heroku项目,它使用环境变量来获取其配置,但我首先使用virtualenv在本地测试我的应用程序。
有没有办法在virtualenv中设置远程机器上定义的环境变量?
发布于 2012-03-04 18:58:45
您可以尝试:
export ENVVAR=value
在virtualenv_root/bin/activate中。基本上,激活脚本是您开始使用virtualenv时执行的脚本,因此您可以将所有自定义内容放入其中。
发布于 2016-07-29 04:17:36
虽然这里有很多很好的答案,但我没有看到一个发布的解决方案,既包括在停用时取消设置环境变量,也不需要除virtualenv
之外的其他库,所以我的解决方案只涉及编辑/bin/activate,使用变量MY_SERVER_NAME
和MY_DATABASE_URL
作为示例:
在激活脚本中应该有对deactivate的定义,并且您希望在其末尾取消设置变量:
deactivate () {
...
# Unset My Server's variables
unset MY_SERVER_NAME
unset MY_DATABASE_URL
}
然后,在激活脚本的末尾,设置变量:
# Set My Server's variables
export MY_SERVER_NAME="<domain for My Server>"
export MY_DATABASE_URL="<url for database>"
这样,您就不需要安装任何其他东西来使其正常工作,并且在deactivate
virtualenv时也不会留下变量。
发布于 2014-01-04 15:58:26
只使用virtualenv (不使用virtualenvwrapper),可以通过您采购的activate
脚本轻松设置环境变量,以便激活virtualenv。
运行:
nano YOUR_ENV/bin/activate
将环境变量添加到文件的末尾,如下所示:
export KEY=VALUE
如果需要,您还可以设置一个类似的钩子来取消设置环境变量,就像Danilo Bargen在上面他的精彩答案中所建议的那样。
https://stackoverflow.com/questions/9554087
复制相似问题