Fabric:无法在virtualenv中获取环境变量

3

我有一个在虚拟环境中运行的Django项目。同时,在.bashrc文件中有一行export ENV=staging。在设置中,我尝试使用os.getenv('ENV')来读取它,但它返回None。

settings_staging.py

...
ENV = os.getenv('ENV')
...

.bashrc

...
export ENV=staging
...

错误

[dev.gipi] out:   File "/home/ubuntu/projects/deeyoon/settings/settings.py", line 61, in <module>
[dev.gipi] out:     raise Exception('Environment variable ENV is requried!')
[dev.gipi] out: Exception: Environment variable ENV is requried!

可能是什么原因导致问题出现,或者出了什么问题?
Sultan.
2个回答

10

还有一种情况是fabric会忽略.bashrc文件。 通常,.bashrc文件中包含以下行:

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

将其注释掉。


谢谢!这就解决了 :) - Craig Labenz
谁会想到问题出在 .bashrc 文件上呢!? 干杯! - mrpopo

3
常见问题是.bashrc文件从未执行。输入env并检查是否存在ENV变量。

7
我记得fabric使用登录shell,而.bashrc在登录shell中不会被执行,但.bash_profile可以正常工作。 - sultan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接