Macos 如何为root用户设置环境变量
我是Mac用户 我想为root设置PYTHONPATH env。所以Macos 如何为root用户设置环境变量,macos,environment,sudo,pythonpath,Macos,Environment,Sudo,Pythonpath,我是Mac用户 我想为root设置PYTHONPATH env。所以 $ sudo su - # vi ~/.profile 并添加到文件“export PYTHONPATH=/mypythonlib” 然后 我能看到这条线 PYTHONPATH=/Users/simpnet2/projects/meiji/src/hershey 但是 当我使用sudo命令时,找不到 $ sudo env 。。没有蟒蛇 我的程序必须使用sudo命令运行,并且需要PYTHONPATH如果使用sh try/e
$ sudo su -
# vi ~/.profile
并添加到文件“export PYTHONPATH=/mypythonlib”
然后
我能看到这条线
PYTHONPATH=/Users/simpnet2/projects/meiji/src/hershey
但是
当我使用sudo命令时,找不到
$ sudo env
。。没有蟒蛇
我的程序必须使用sudo命令运行,并且需要
PYTHONPATH
如果使用sh try/etc/profile
,您应该尝试sudo-i
,它将模拟以root
身份登录,并获取~root/.profile,bash try/etc/bashrc
,如果您使用zsh try/etc/zshenv
从10.8.5开始,将我的环境语句放在根用户(/var/root)主页的.profile路径中。退出bash并返回root用户提示符并使用“su-”后,我可以看到我的新路径等。使用“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
MacBook Pro:~root#cat/var/root/.profile
导出MANPATH=/opt/local/share/man:$MANPATH
导出路径=/opt/local/bin:/opt/local/sbin:$PATH
MacBook Pro:~root#哪个端口
/opt/local/bin/port
在编辑sudoers文件时,可以使PYTHONPATH对sudo可见。请注意,您应该只通过visudo执行此操作。在以普通用户身份登录并调用“su-root”的情况下,我发现Mac OS 10.8.5的bash忽略了.profile和.bash\u profile;我无法通过编辑这些文件来更改root的$PATH。所做的工作是编辑/etc/path。退出根shell并使用“su-root”再次输入后,新路径出现了。在其他Linux系统中,“sudo”不使用本地环境变量也是正确的。但是您可以将临时环境变量与“sudo”命令一起声明
例如,在您的示例中,可以在命令“sudo env”中添加“PYTHONPATH=/mypythonlib”,最后一个命令是:
sudo PYTHONPATH=/mypythonlib env
您也可以阅读本文:。您可以看到“sudo”如何保留或忽略用户定义的环境变量 请阅读。有一件事要补充。。。如果启用了ubuntu
,请尝试最佳答案。事实上,唯一对我有效的方法。
sudo PYTHONPATH=/mypythonlib env