У меня возникли проблемы с получением аргументов командной строки, переданных в программы Python, если я попытаюсь выполнить их непосредственно в качестве исполняемых команд из командной оболочки Windows. Например, если у меня есть эта программа (test.py):Windows не передает аргументы командной строки программам Python, выполненным из оболочки
import sys
print "Args: %r" % sys.argv[1:]
И выполнить:
>test foo
Args: []
по сравнению с:
>python test.py foo
Args: ['foo']
Моя конфигурация имеет:
PATH=...;C:\python25;...
PATHEXT=...;.PY;....
>assoc .py
.py=Python.File
>ftype | grep Python
Python.CompiledFile="C:\Python25\python.exe" "%1" %*
Python.File="C:\Python25\python.exe" "%1" %*
Python.NoConFile="C:\Python25\pythonw.exe" "%1" %*
Однако это работает для меня. C: \ Documents и Settings \ Quim> тест Foo Args: [ 'Foo'] I расположен test.py в исходном местоположении для cmd.exe (% HOMEDRIVE %% HOMEPATH% в свойствах). Для остальных нет ничего особенного в моей настройке: winxp, Activepython 2.6.5 – joaquin
Не могли бы вы использовать [RegScanner] (http://www.nirsoft.net/utils/regscanner.html) и найти все вхождения 'Python .Филь в вашем реестре? –
Ничего себе, какая расстраивающая ошибка :(Я просто переустановил Python, и он все еще сломан! Ошибка была обнаружена в трекер-проблеме Python два года назад http://bugs.python.org/issue7936, но нет никаких исправлений - мало кто из разработчиков использует Windows. –