首页 > 解决方案 > 当我使用 sudo 以 root 身份运行时,Python 2.7,而不是 Anaconda 3 运行

问题描述

当我在 RHEL 上运行 python 时,我会自动使用 Anaconda3:

Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

当我 sudo python 时,它默认为 python 2.7。

Python 2.7.5 (default, Sep 12 2018, 05:31:16)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

“which python”与“sudo which python”给出:

/opt/anaconda3/bin/python

/bin/python

如何让 sudo 命令运行 Python 的 Anaconda 发行版。改变这个有风险吗?

我可以永久进行更改,还是只使用完整的 Anaconda 路径从 sudo 运行 python?

标签: pythonlinux

解决方案


您的 python 版本和 root 的安装位置不同。如果你想使用/opt/anaconda3/bin/python,有不同的方法:你可以添加alias python="/opt/anaconda3/bin/python" to your .bashrcroot用户的文件并重新登录或源这个.bashrc

另一种方法是#!/opt/anaconda3/bin/python在您从 root 用户运行它时在您的 python 代码中使用它,以便使用您的 anaconda 发行版。

关键是,你必须使用/opt/anaconda3/bin/python你的 python 二进制文件。

python2.7您也可以从您的 root 用户中删除并添加/opt/anaconda3/bin/python您的环境PATH变量。

此外,您可以添加/opt/anaconda3/bin/pythonPATH 环境变量并使用 python3 而不是来自 root 用户的 python。或者你可以使用 /opt/anaconda3/bin/python而不是python

确保路径的权限和所有权良好,用户之间没有冲突。


推荐阅读