sanyassh Asked: 2019-07-05 01:38:11 +0800 CST2019-07-05 01:38:11 +0800 CST 2019-07-05 01:38:11 +0800 CST 使用 sudo 运行 python 脚本返回“sudo: script.py: command not found” 772 我可以在script.py没有 sudo 的情况下成功运行,但是在运行时我得到“sudo: script.py: command not found” sudo script.py。我需要做什么才能运行sudo script.py? sudo executable 2 个回答 Voted Best Answer Elias 2019-07-05T01:42:56+08:002019-07-05T01:42:56+08:00 尝试./像这样添加: sudo ./script.py 以上假设script.py文件位于您当前的工作目录中。表示“.本目录”,所以./script.py指“script.py在当前目录”。 terdon 2019-07-05T01:53:02+08:002019-07-05T01:53:02+08:00 为了像这样按名称调用可执行文件,它需要位于存储在特殊变量中的目录之一中$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 中包含的目录中,但不在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
尝试
./
像这样添加:以上假设
script.py
文件位于您当前的工作目录中。表示“.
本目录”,所以./script.py
指“script.py
在当前目录”。为了像这样按名称调用可执行文件,它需要位于存储在特殊变量中的目录之一中
$PATH
。该 PATH 对于您的普通用户和对于sudo
:据推测,由于脚本位于您的当前目录中,因此您位于常规用户的 PATH 中包含的目录中,但不在
sudo
. 因此,您需要使用其完整路径或相对路径调用脚本: