Запуск сценария Python с sudo возвращает «sudo: script.py: команда не найдена»

Я могу запустить script.py без sudo успешно, но я получаю «sudo: script.py: команда не найдена» при запуске sudo script.py. Что мне нужно сделать, чтобы запустить sudo script.py?

0
задан 4 July 2019 в 12:38

2 ответа

Попытайтесь добавить ./ как это:

sudo ./script.py

Вышеупомянутое принимает script.py файл находится в Вашем текущем рабочем каталоге. . означает "этот каталог", таким образом, ./script.py относится к"script.py в текущем каталоге".

3
ответ дан 24 October 2019 в 01:09

Чтобы позвать исполняемый файл по имени как этот, это должно быть в одном из каталогов, сохраненных в специальной переменной $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

По-видимому, так как сценарий находится в Вашем текущем каталоге, Вы находитесь в каталоге, который включен в ПУТЬ Вашего обычного пользователя, но не в ПУТИ 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
3
ответ дан 24 October 2019 в 01:09

Другие вопросы по тегам:

Похожие вопросы: