我是Mac用户。
我想为root设置PYTHONPATH env。所以
$ sudo su -
# vi ~/.profile
并添加到文件'export PYTHONPATH = / mypythonlib'
然后
# env
我可以看到这一行
PYTHONPATH=/Users/simpnet2/projects/meiji/src/hershey
,但..
当我使用sudo命令时,找不到
$ sudo env
..没有PYTHONPATH
我的程序必须使用sudo命令运行,需要PYTHONPATH
。
答案 0 :(得分:7)
如果您使用sh try /etc/profile
,请尝试使用/etc/bashrc
,如果您使用zsh,请尝试/etc/zshenv
。
答案 1 :(得分:5)
你可以让sudo的PYTHONPATH可以编辑你的sudoers文件。请注意,您只能通过visudo as explained here执行此操作。
答案 2 :(得分:3)
您应该尝试sudo -i
来模拟以root
登录并获取~root/.profile
。
答案 3 :(得分:1)
从10.8.5开始,将我的环境语句放在root用户(/ var / root)主目录中的.profile路径中。在退出bash并使用'su - '回到root用户提示符后,我可以使用'env'命令和我的MacPorts安装正确地查看我的新路径等。
MacBook-Pro:~ root# cat /var/root/.profile export MANPATH=/opt/local/share/man:$MANPATH export PATH=/opt/local/bin:/opt/local/sbin:$PATH MacBook-Pro:~ root# which port /opt/local/bin/port
答案 4 :(得分:1)
那么,在其他Linux系统中,' sudo'也是正确的。不使用本地环境变量。但您可以声明临时环境变量以及' sudo'命令。
例如,在您的情况下,您可以添加' PYTHONPATH = / mypythonlib'在你的命令' sudo env'中,最后的命令是:
sudo PYTHONPATH=/mypythonlib env
您还可以阅读这篇文章:Using sudo。你可以看到' sudo'保留或忽略用户定义的环境变量。
答案 5 :(得分:0)
如果以普通用户身份登录并调用“su - root”,我发现Mac OS 10.8.5的bash忽略了.profile和.bash_profile;我无法通过编辑这些文件来更改root的$ PATH。编辑/ etc / paths的工作是什么。退出root shell并再次输入“su - root”后,新路径就会出现。