WSL 内の Windows インタープリターを使用して sudo として Python スクリプトを実行しようとしましたが、「ファイルが見つかりません」というエラーが表示されました

WSL 内の Windows インタープリターを使用して sudo として Python スクリプトを実行しようとしましたが、「ファイルが見つかりません」というエラーが表示されました

私の WSL Debian には、カスタム スクリプトを保存しているpasmanホーム ディレクトリ フォルダーにあるという Python スクリプトがあります。ファイルにステートメントがあるので、このスクリプトを WSL システム上のどこでも実行できます。また、必要に応じてスクリプトを実行するために、ファイルにフォルダーを設定しています。binexport.bashrcbinvisudosudo

この Python スクリプトにはシェバンがあります:

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

Python for 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、スクリプトは完璧に実行されます。

sudoしたがって、問題は Windows Python インタープリターが WSL でスクリプトを見つけられないということではなく、 で実行された場合にのみスクリプトを見つけられ、 なしではsudoスクリプトを見つけられないということだと思います。

exportまた、問題はファイル内のステートメントにあるとは思いません.bashrc。もしそうなら、 で実行しようとすると、sudoのようなものが表示されますsudo: pasman: command not found.。ユーザー にがあっても、コマンドがsudo見つかりません。pasmanexport.bashrc

なぜこのようなことが起こるのか、誰か分かるでしょうか?

関連情報