簡體   English   中英

從 WSL 中調用 Windows Python 的路徑處理錯誤

[英]Path handling error calling Windows Python from within WSL

我有一個名為“submit.py”的腳本,它以“#!/usr/bin/env python.exe”開頭,如果我在包含“submit.py”的目錄中,它就可以工作。 我可以運行“./submit.py”並且腳本運行正常。 我決定將包含“submit.py”的目錄添加到我的 PATH 環境變量中,這樣我就可以從任何目錄運行“submit.py”。

但是,我無法從任何目錄運行“submit.py”。 我得到的錯誤是:

D:\Program Files\Python36\python.exe: can't open file '/mnt/d/Program Files/kattisTools/submitToKattis': [Errno 2] No such file or directory

我認為該錯誤與 Windows Python 期望路徑的方式以及 WSL 處理路徑的方式的差異有關。 我的意思是 python.exe 應該尋找“D:\\Program Files\\kattisTools\\submitToKattis”,但 WSL 正在為它提供“/mnt/d/Program Files/kattisTools/submitToKattis”

我也相信“./submit.py”在我位於包含 submit.py 的目錄中時有效,因為 '.' 運算符在 WSL 中的處理方式不同,WSL 將真實的 Windows 路徑提供給 Windows Python。

我希望有一種補救措施,以便我可以從依賴 Windows Python 的任何目錄運行“submit.py”?

2018 年 6 月 26 日更新:我研究了 WSL 和 Windows 之間的共享環境變量,尤其是“/w”標志。 我還沒有讓它按照我想要的方式工作,但這可能是什么?

你現在讓這個工作了嗎? 從 wsl 中調用帶有 pipenv 虛擬環境(基於 windows 的 python.exe)的 python 腳本時,這里有同樣的問題:(

and it works你是完全正確的......直接從它的文件夾中調用腳本它看起來像這樣: 並且它可以工作

如果從另一個文件夾調用它,它看起來像(並且不起作用):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM