Phl*_*das 7 python linux ubuntu
我想sudo python找到 Python 3。
我有一个奇怪的问题,在终端中,输入python --version给出了 3.6 但sudo python --version给出了 2.7。在尝试了几件事之后,我终于用sudo apt-get purge python2*. 那正确删除了所有内容。尽管如此,我还是sudo python找不到 Python 3。
我试过改变我的/root/.bashrc:
export PATH="/home/username/anaconda3/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
和
alias python="/home/username/anaconda3/bin/python"
Run Code Online (Sandbox Code Playgroud)
我也放了相同的行~/.bashrc。
我etc/sudoers有这条线:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"/usr/bin:$
Run Code Online (Sandbox Code Playgroud)
我打开了新终端,甚至重新启动了计算机。任何想法如何sudo python只找到 Python 3?我不想要单个会话修复,而是每次使用终端时都会起作用的东西。
谢谢
Cha*_*ffy 12
您/etc/sudoers已明确配置为使用已知的安全路径覆盖您的用户路径。
也就是说,如果您想始终通过用户的 PATH 路径,您可以轻松地sudo使用执行此操作的函数进行覆盖(安装在您的~/.bashrc或类似的工具中以使其持久化):
psudo() { sudo env PATH="$PATH" "$@"; }
Run Code Online (Sandbox Code Playgroud)
此后,psudo python将使用python在 PATH 中找到的相同解释器。
如果你真的想覆盖sudo命令本身,那也是可行的:
sudo() { command sudo env PATH="$PATH" "$@"; }
Run Code Online (Sandbox Code Playgroud)
该command内建防止功能从递归(调用本身)。
| 归档时间: |
|
| 查看次数: |
19129 次 |
| 最近记录: |