现象:
我们在linux下使用sudo命令的时候,经常发现缺少一些变量,导致程序执行报错.
比如python程序fly,当前的用户是tom, 执行fly需要sudo权限执行,那么直接
sudo fly 会报错,缺少相应的模块,
只是因为对应的pythonpath的设置缺少,但是如果你仅仅export当前环境,执行sudo还是会报错,
原因:
问题就在于sudo的执行使得的环境变量进行了重置,所以相应的执行环境中无法找到对应的pythonpath,
解决:
简单的一种方法是,修改/etc/sudoers文件, 添加如下的设置
Defaults env_keep += PYTHONPATH
这里的PYTHONPATH只要是tom用户可以看到就行,比如你在~/.bashrc或profile中设置类似的变量。
Refer:
1)
2)
阅读(2312) | 评论(0) | 转发(0) |