Beim Versuch, ein Python-Skript als sudo mit dem Windows-Interpreter innerhalb von WSL auszuführen, erhalte ich die Meldung „Datei nicht gefunden“

Beim Versuch, ein Python-Skript als sudo mit dem Windows-Interpreter innerhalb von WSL auszuführen, erhalte ich die Meldung „Datei nicht gefunden“

Ich habe ein Python-Skript in meinem WSL-Debian namens pasman, das sich in meinem Home-Verzeichnis befindet bin, wo ich meine benutzerdefinierten Skripte aufbewahre. Ich habe eine exportAnweisung in .bashrcder Datei, damit ich diese Skripte überall auf dem WSL-System ausführen kann. Ich habe meinen binOrdner auch in der Datei so eingerichtet, visudodass Skripte bei sudoBedarf ausgeführt werden.

Dieses Python-Skript enthält einen Shebang:

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

weil ich es mit dem Python-Interpreter für Windows ausführen möchte.

Das Problem besteht darin, dass dieses Skript weiterhin im Besitz von bleiben soll root. Daher muss ich es mit ausführen . sudoWenn ich es jedoch mit ausführe, sudoerhalte ich Folgendes:

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

Wenn das Skript nicht Eigentum von ist rootund ich es ohne ausführe sudo, läuft es einwandfrei.

Ich glaube also nicht, dass das Problem darin liegt, dass der Windows-Python-Interpreter mein Skript in WSL nicht finden kann, sondern dass er das Skript nur dann nicht finden kann, wenn es mit ausgeführt wird sudo, andernfalls sudowird das Skript gefunden.

Ich glaube auch nicht, dass das Problem an der exportAnweisung in meiner .bashrcDatei liegt. Wenn das so wäre, würde ich beim Versuch, sie mit auszuführen, sudonur etwas wie sudo: pasman: command not found.. sudohabe meinen pasmanBefehl auch mit dem exportin meinem Benutzer gefunden .bashrc.

Hat jemand eine Idee, warum das passiert?

verwandte Informationen