我想让 sudo python
找到 Python 3。
我遇到了一个奇怪的问题,在终端中输入 python --version
得到了 3.6,但是 sudo python --version
得到了 2.7。在尝试了一些东西之后,我终于用 sudo apt-get purge python2*
卸载了 2.7。这正确地删除了所有内容。尽管如此,我还是无法通过 sudo python
找到 Python 3。
我已经尝试将我的 /root/.bashrc
更改为:
export PATH="/home/username/anaconda3/bin:$PATH"
和
alias python="/home/username/anaconda3/bin/python"
我也在 ~/.bashrc
中放入了相同的行。
我的 etc/sudoers
有这一行:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"/usr/bin:$
我打开了新终端,甚至重新启动了计算机。有什么想法可以让 sudo python
只找到 Python 3?我不想要单个 session 修复,而是每次使用终端时都会起作用的东西。
谢谢
最佳答案
您的 /etc/sudoers
已明确配置为使用已知的安全路径覆盖您的用户路径。
就是说,如果你想始终通过用户的 PATH 路径,你可以轻松地覆盖 sudo
一个函数来执行此操作(安装在你的 ~/.bashrc
或类似的使其持久化):
psudo() { sudo env PATH="$PATH" "$@"; }
此后,psudo python
将使用与 PATH 中相同的 python
解释器。
如果您真的想覆盖sudo
命令本身,那也是可行的:
sudo() { command sudo env PATH="$PATH" "$@"; }
内置的 command
可防止函数递归(调用自身)。
关于python - 须藤 : python: command not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44726377/