Quando esegui uno script senza digitare "python" davanti, devi sapere due cose su come Windows richiama il programma. Il primo è scoprire che tipo di file Windows pensa che sia:
C: \> assoc .py
.py = Python.File
Successivamente, è necessario sapere come Windows esegue le cose con quell'estensione. È associato al tipo di file "Python.File", quindi questo comando mostra cosa farà:
C: \> ftype Python.File
Python.File = "c: \ python26 \ python.exe" "% 1"% *
Quindi sulla mia macchina, quando digito "blah.py foo", eseguirà questo comando esatto, senza alcuna differenza nei risultati rispetto a se avessi digitato l'intera cosa da solo:
"c: \ python26 \ python.exe" "blah.py" pippo
Se digiti la stessa cosa, comprese le virgolette, otterrai risultati identici a quando digiti "blah.py foo". Ora sei in grado di capire da solo il resto del tuo problema.
(Oppure pubblica informazioni più utili nella tua domanda, come copie effettive taglia e incolla di ciò che vedi nella console. Tieni presente che le persone che fanno quel tipo di cose ottengono il voto delle loro domande e ottengono punti reputazione e più persone è probabile che li aiuti con buone risposte.)
Inserito dai commenti:
Anche se assoc e ftype visualizzano le informazioni corrette, può accadere che gli argomenti vengano rimossi. Ciò che può essere d'aiuto in questo caso è riparare direttamente le chiavi di registro rilevanti per Python. Impostare il
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
chiave per:
"C:\Python26\python26.exe" "%1" %*
Probabilmente, in precedenza, %*
mancava. Allo stesso modo, imposta
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
allo stesso valore. Vedi http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Il percorso del registro può variare, utilizzare python26.exe
oo quello python.exe
che è già presente nel registro.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command