尝试在 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

因为我想用 Windows 版 Python 解释器运行它。

问题是我想让这个脚本归 拥有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 even with the exportin my user .bashrc.

有人知道为什么会发生这种情况吗?

相关内容