添加一个CONFIG_ENV的环境变量
sudo vi ~/.bash_profile
文件中加上
export CONFIG_ENV="develoment"
重新打开终端后echo $CONFIG_ENV
就能看到生效了
运行python
import os;print(os.getenv("CONFIG_ENV"))
也能获取到CONFIG_ENV
但是,假如运行sudo python
import os;print(os.getenv("CONFIG_ENV"))
则获取到的是None
查了一天资料发现
sudo中默认配置会重置环境变量,所以使用sudo的时候需要小心这点。
接下来解决
如何让sudo继承我们需要的环境变量?
有如下两种方法:
1、手动在sudo命令加上需要的某个环境变量
sudo env CONFIG_ENV='develoment' python
2、
sudo就是root用户,只读取/etc/profile和/etc/bashrc的环境变量,我们只需
sudo vi /etc/bashrc
文件中加上
export CONFIG_ENV="develoment"
```
修改/etc/sudoers文件把Defaults env_reset改成Defaults !env_reset
```
sudo vi /etc/sudoers
#通过esc:/env查找到关键字目标行
把Defaults env_reset改成Defaults !env_reset
```
这样sudo命令就不会重置环境变量了
sudo python启动也能获取CONFIG_ENV变量
![屏幕快照 2016-12-30 下午5.05.34.png](https://img.haomeiwen.com/i2042197/306796cbcf473f9a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论