Ошибка обработки пути при вызове Windows Python из 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, который передает реальный путь Windows к Windows Python.

Я надеялся, что есть какое-то средство, чтобы я мог запустить "submit.py" из любого каталога, используя его на Windows Python?

26/06/2018 Обновление: я рассмотрел переменные общей среды между WSL и Windows, и в частности флаг '/w'. Я не получил это работать так, как я хотел, но это может быть что-то?

0 ответов

Вы уже заставили это работать? Такая же проблема возникает при вызове скрипта python с виртуальной средой pipenv (python.exe на базе Windows) из wsl:(

Вы совершенно правы.... Вызов скрипта прямо из папки выглядит так:C:\scripts\.venv\Scripts\python.exe ./test.py и работает

пока он выглядит так (и не работает), если он вызывается из другой папки:C: \ scripts\.venv \ Scripts \ python.exe /mnt/c/scripts/test.py

Другие вопросы по тегам