Пытаюсь запустить скрипт Python как sudo с интерпретатором Windows внутри WSL, но получаю сообщение «файл не найден»

Пытаюсь запустить скрипт Python как sudo с интерпретатором Windows внутри WSL, но получаю сообщение «файл не найден»

У меня есть скрипт python в моем WSL Debian, который называется pasman, который находится в binпапке моего домашнего каталога, где я храню свои пользовательские скрипты. У меня есть exportоператор в .bashrcфайле, так что я могу запускать эти скрипты в любом месте системы WSL. У меня также есть binпапка, установленная в visudoфайле, чтобы запускать скрипты по sudoмере необходимости.

Этот скрипт на Python имеет следующий код:

#!/mnt/c/Users/<MyWindowsUsername>/AppData/Local/Programs/Python/Python38/python.exe

потому что я хочу запустить его с помощью интерпретатора Python для Windows.

Проблема в том, что я хочу, чтобы этот скрипт принадлежал root, поэтому мне нужно запустить его с помощью sudo, но когда я запускаю с помощью , sudoя получаю:

C:\Users\<MyWindowsUsername>\AppData\Local\Programs\Python\Python38\python.exe: can't open file '/home/<mylinuxusername>/bin/pasman': [Errno 2] No such file or directory

Если скрипт не принадлежит пользователю rootи я запускаю его без него sudo, он работает отлично.

Итак, я не думаю, что проблема в том, что интерпретатор Windows Python не может найти мой скрипт в WSL, но он не может найти скрипт только тогда, когда он запущен с sudo, без sudoнего он не найден.

Я также не думаю, что проблема в exportоператоре в моем .bashrcфайле. Если бы это было так, то при попытке запустить его с помощью sudoя бы просто получил что-то вроде sudo: pasman: command not found.. sudofound my pasmancommand даже с exportin my user .bashrc.

Есть ли у кого-нибудь идеи, почему это происходит?

Связанный контент