Macports sudo在python中扩展到/ var / root

时间:2011-02-04 02:24:07

标签: python macos bash macports sudo

我安装了sudo的macports版本。一切都很好,除了一件事。使用python 2.6将~扩展到用户的主目录会产生与Snow Leopard附带的sudo版本不同的输出。

例如,请考虑以下python代码:

#expand_home_dir.py
import os

os.path.expanduser('~')

以下是上面列出的3个不同的代码调用。使用sudo的第一个调用是使用Macports版本,因为我的$PATH/opt/local/bin开头:

robert$ python2.6 expand_home_dir.py 
/Users/robert
robert$ sudo python2.6 expand_home_dir.py 
/var/root
robert$ /usr/bin/sudo python2.6 expand_home_dir.py
/Users/robert

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

HOME环境变量控制〜扩展到的内容。听起来你的MacPorts安装版本的sudo正在将HOME重置为root用户的主目录,而系统安装的版本则没有。如果您输入sudo sh -c 'echo $HOME'会怎样?