Я знаю, что мой заголовок не описателен, поэтому позвольте мне попытаться объяснить его здесь.Сценарий Python, теряющий аргументы при запуске из PATH на Windows
Обычно я выполняю мой питон скрипт так:
D:\github\Miscellaneous-Programs\Python>python check.py -h
hello
['check.py', '-h']
Теперь то, что я сделал это добавил папку D:\github\Miscellaneous-Programs\Python
в моих окнах path
переменных среды. Чем я пытался выполнить мой сценарий, как это:
C:\Users\noob>check -h
hello
['D:\\github\\Miscellaneous-Programs\\Python\\check.py']
Как вы видите, он не показал -h
аргумент я прилагаемый к нему.
Мои check.py
import sys
print "hello"
print sys.argv
Если удалить print sys.argv
из указанного выше питона скрипта работать нормально в обоих случаях я уже упоминал выше, то есть, она печатает «привет» просто отлично.
Итак, мой вопрос заключается в том, как выполнить скрипт python, который принимает некоторые аргументы командной строки после добавления сценария в переменную среды.
Моя цель состоит в том, чтобы выполнить мой python script
из любой точки командной строки Windows, которая несколько похожа на chmod +x check.py
.
Я попробовал опцию chmod
в cygwin, она отлично работает для обоих случаев.
Cygwin output
[email protected] ~
$ chmod +x check.py
[email protected] ~
$ ./check.py h
['./check.py', 'h']
сделать файл .bat containg 'python full \ path \ to \ check.py' и добавить каталог, содержащий этот .bat, в' Path' (вы можете захотеть поместить 'echo off' в начале .bat – khachik
Я бы предложил изменить заголовок на что-то более подробное, например: «Запуск сценария Python из PATH исключает все, кроме первого аргумента командной строки», так что другие люди, имеющие ту же проблему, найдут его. – mensi
Действительно ли это было 'C: \ Users \ noob> check -h' not' C: \ Users \ noob> check.py -h'? –