python - 当我使用 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?
解决方案
您的 python 版本和 root 的安装位置不同。如果你想使用/opt/anaconda3/bin/python
,有不同的方法:你可以添加alias python="/opt/anaconda3/bin/python" to your .bashrc
root用户的文件并重新登录或源这个.bashrc
。
另一种方法是#!/opt/anaconda3/bin/python
在您从 root 用户运行它时在您的 python 代码中使用它,以便使用您的 anaconda 发行版。
关键是,你必须使用/opt/anaconda3/bin/python
你的 python 二进制文件。
python2.7
您也可以从您的 root 用户中删除并添加/opt/anaconda3/bin/python
您的环境PATH
变量。
此外,您可以添加/opt/anaconda3/bin/python
PATH 环境变量并使用 python3 而不是来自 root 用户的 python。或者你可以使用 /opt/anaconda3/bin/python
而不是python
确保路径的权限和所有权良好,用户之间没有冲突。
推荐阅读
- c - 使用管道或重定向时 Ncurses 闪烁
- java - Android操作栏选项菜单项自定义可选背景
- c# - Azure Blob 下载图像的链接,但我只需要观看(Asp.NET Core)
- lxml - spyne 生成无效架构
- java - JNA KeyboardUtils.isPressed 不使用箭头键
- django - 我不知道如何在 django 中显示 formset
- bash - 将输入文件中的多个参数多次传递给命令(Bash)
- appkit - 自定义 NSWindowController 中的级联
- asp.net-core - ASP.NET Core 2.2 - SignalR 如何加入群组并从服务器发送消息?
- javascript - 如何将变量传递给 CSS 网格 repeat() 函数