При выполнении сценария без ввода «питон» впереди, вы должны знать две вещи о том, как Windows, запускает программу. Во-первых, чтобы узнать, какой файл думает Windows, это:
C:\>assoc .py
.py=Python.File
Далее, вы должны знать, как Windows, выполняет вещи с этим расширением.Это связано с типом файла «Python.File», так что эта команда показывает, что он будет делать:
C:\>ftype Python.File
Python.File="c:\python26\python.exe" "%1" %*
Так что на моей машине, когда я типа «blah.py Foo», он будет выполнять эту команду точно , без разницы в результатах, чем если бы я типизированная полную вещи себя:
"c:\python26\python.exe" "blah.py" foo
Если вы печатаете то же самое, включая кавычки, то вы получите результаты идентичны, когда вы просто типа «ли. py foo ". Теперь вы в состоянии выяснить остальную часть своей проблемы для себя.
(Или опубликуйте более полезную информацию в своем вопросе, например, фактические вырезанные и вставляемые копии того, что вы видите на консоли. Обратите внимание, что люди, которые делают подобные вещи, голосуют за свои вопросы, и получают очки репутации и больше людей, скорее всего, чтобы помочь им с хорошими ответами)
привезен из Комментариев:.
Даже если ассоциативные и Ftype отображать правильную информацию, может случиться так, что аргументы отбрасывается прочь. Что может помочь в этом случае - прямое исправление соответствующих разделов реестра для Python. Установите ключ
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
к:
"C:\Python26\python26.exe" "%1" %*
Вероятно, ранее, %*
отсутствовал. Аналогичным образом устанавливаются
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
к тому же значению. См http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Путь реестра может изменяться, используйте python26.exe
или python.exe
или в зависимости от того уже есть в реестре.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
публикация фрагмента кода может помочь нам вам помочь. – jldupont
Человек без кристаллического шара уже дал решение =) print sys.argv [1] производит эту ошибку. – ton4eg
Если у вас установлено несколько версий Python, вам может понадобиться http://stackoverflow.com/questions/1934675/how-to-execute-python-scripts-in-windows/#22439338. – laike9m