使用 sudo 运行 python 脚本返回“sudo:script.py:未找到命令”

使用 sudo 运行 python 脚本返回“sudo:script.py:未找到命令”

我可以script.py在没有 sudo 的情况下成功运行,但运行时出现“sudo:script.py:未找到命令” sudo script.py。我需要做什么才能运行sudo script.py

答案1

尝试./像这样添加:

sudo ./script.py

以上假设script.py文件位于您当前的工作目录中。.表示“此目录”,因此./script.py指的是“script.py在当前目录中”。

答案2

为了通过名称调用可执行文件,它需要位于特殊变量 中存储的目录之一中$PATH。对于普通用户和 ,该 PATH 是不同的sudo

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

~$ sudo sh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

假设,由于脚本位于您当前的目录中,因此您所在的目录包含在常规用户的 PATH 中,但不在 PATH 中sudo。因此,您需要使用其完整路径或相对路径来调用该脚本:

## If it is in _this_ directory, use ./
sudo ./script.py

## Alternatively, use the full path:
sudo /home/terdon/myscripts/script.py

## or a relative path. If you're in /home/terdon/foo, use:
sudo ../myscripts/script.py

相关内容