Mam problemy z uzyskaniem argumentów wiersza polecenia przekazanych do programów w języku Python, jeśli próbuję wykonać je bezpośrednio jako polecenia wykonywalne z powłoki poleceń systemu Windows. Na przykład, jeśli mam ten program (test.py):System Windows nie przekazuje argumentów wiersza poleceń programom w języku Python wykonanym z powłoki
import sys
print "Args: %r" % sys.argv[1:]
i wykonanie:
>test foo
Args: []
w stosunku do:
>python test.py foo
Args: ['foo']
Moja konfiguracja posiada:
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" %*
Jednak to działa dla mnie. C: \ Documents and Settings \ Quim> Test bla argS: [ 'foo'] I znajduje test.py w początkowej lokalizacji dla cmd.exe (% HOMEDRIVE %% HOMEPATH% właściwości). Dla reszty nie ma nic szczególnego w mojej konfiguracji: winxp, Activepython 2.6.5 – joaquin
Czy możesz użyć [RegScanner] (http://www.nirsoft.net/utils/regscanner.html) i znaleźć wszystkie wystąpienia 'Python .file 'w rejestrze? –
Wow, co za frustrujący błąd :(Po prostu ponownie zainstalowałem Pythona i nadal jest on uszkodzony! Błąd został zgłoszony w śledzącym wydaniu Pythona dwa lata temu http://bugs.python.org/issue7936, ale nie ma żadnej poprawki - tylko kilka z nich używa Windows: –