为什么终端中sudo python和python会启动两个不同版本的python?

为什么终端中sudo python和python会启动两个不同版本的python?

我的服务器一开始安装的是 python 2.6。然后我下载了 python 2.7,并使用 make 和 make altinstall 进行安装。当我在终端中尝试 python 时,它会打开 python 2.7,但 sudo python 会打开 2.68。所有命令(如 virtualenv pip)都使用 python 2.68

答案1

因为sudo XYZ基本上意味着“以其他用户身份运行 XYZ(默认为 root)”。该用户可能拥有一组不同的环境变量,包括$PATH

为了证实这一点,请比较以下输出:

env | grep PATH
sudo env | grep PATH

答案2

用户的python版本:

~> python --version
Python 3.6.2 :: Continuum Analytics, Inc.

SUDO的python版本:

~> sudo python --version
Python 2.7.13

如果您想在使用 sudo 时执行相同版本的 python,您可以尝试:

~> sudo env "PATH=$PATH" python --version
Python 3.6.2 :: Continuum Analytics, Inc.

答案3

which python检查和的输出sudo which python,它们应该不同。如果是这样,请检查您的$PATHroot 和普通用户,正如其他人所指出的那样。

答案4

按照建议,检查您的路径。如果不起作用,请检查您.bashrc的主目录中的路径。使用不同 python 版本的标准方法是/usr/local/bin/python2.7.bashrc

相关内容