1

Я думал, что это будет легко, но я боролся некоторое время.

У меня на компьютере под управлением Windows есть скрипт Python, который называется «myscript.py». У меня это в папке, которая находится в моем PATH, и я добавил расширение «.py» в переменную окружения PATHEXT, чтобы я мог запустить свой скрипт из командной строки, просто выполнив "myscript" (вместо ввода "myscript"). .py "). Это работает нормально.

Тем не менее, я не могу получить такое же поведение при запуске моего сценария из приглашения "Выполнить" (Windows-R). Если я набираю «myscript.py», он работает нормально, а просто "myscript" - нет - я получаю, что Windows cannot find 'myscript'... сообщение об ошибке.

Я бы предположил, что приглашение "Выполнить" просто не распознает переменную PATHEXT, но другие типы программ, похоже, работают - я могу запускать .bat (пакетные сценарии Windows) и .exe (исполняемые файлы Windows) из приглашения "Выполнить" без любое расширение необходимо.

Почему не работает мой сценарий Python без расширения из командной строки «Выполнить»?

2 ответа2

2

На самом деле не отвечает на мой вопрос о том, почему, но я нашел удовлетворительный обходной путь: я создал ярлык (щелкните правой кнопкой мыши пустую область в окне проводника Windows -> Создать -> Ярлык) и установил цель ярлыка как мой сценарий Как только этот ярлык окажется в папке, которая находится на моем пути, я могу вызвать свой сценарий только с именем ярлыка (без какого-либо расширения). Это позволяет передавать параметры командной строки в скрипт Python без дальнейшей модификации.

Anaksunaman предоставил еще одну альтернативу - создать оболочку сценария .bat/batch для сценария. Это работает нормально, если ваш скрипт Python не должен принимать параметры, в этом случае потребуется больше усилий для передачи параметров.

1

Не ответ, и вы, вероятно, уже думали об этом как о решении, так что это действительно для других, но использование однострочного .bat-файла для вызова скрипта python работает нормально. И, конечно, вы можете назвать файл bat «myscript.bat», и он будет работать без расширения .bat.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .