嘗試使用 WSL 內的 Windows 解釋器以 sudo 身份運行 Python 腳本,但收到“檔案未找到”

嘗試使用 WSL 內的 Windows 解釋器以 sudo 身份運行 Python 腳本,但收到“檔案未找到”

我的 WSL Debian 中有一個名為 的 python 腳本pasman,它位於我的主目錄資料bin夾中,我在其中保存自訂腳本。我export在文件中有一個聲明.bashrc,以便我可以在 WSL 系統上的任何位置運行此腳本。我還將我的bin資料夾設置為visudo文件,以便在sudo需要時運行腳本。

這個Python腳本有一個shebang:

#!/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,則它可以完美運行。

所以,我不認為問題是 Windows Python 解釋器無法在 WSL 中找到我的腳本,而是只有在使用 運行時才找不到腳本sudo,而沒有sudo找到腳本。

我也不認為問題出在export我的.bashrc文件中的聲明。如果是的話,那麼當我嘗試運行它時,sudo我只會得到類似的東西sudo: pasman: command not found.。即使在我的用戶中也sudo找到了我的pasman命令。export.bashrc

有人知道為什麼會發生這種情況?

相關內容