Wenn Sie ein Skript ausführen, ohne vorher "Python" einzugeben, müssen Sie zwei Dinge darüber wissen, wie Windows das Programm aufruft. Zunächst müssen Sie herausfinden, um welche Art von Datei es sich bei Windows handelt:
C: \> assoc .py
.py = Python.File
Als nächstes müssen Sie wissen, wie Windows Dinge mit dieser Erweiterung ausführt. Es ist dem Dateityp "Python.File" zugeordnet, daher zeigt dieser Befehl, was er tun wird:
C: \> ftype Python.File
Python.File = "c: \ python26 \ python.exe" "% 1"% *
Wenn ich also auf meinem Computer "blah.py foo" eingebe, wird genau dieser Befehl ausgeführt, ohne dass sich die Ergebnisse unterscheiden, als wenn ich das Ganze selbst eingegeben hätte:
"c: \ python26 \ python.exe" "blah.py" foo
Wenn Sie dasselbe eingeben, einschließlich der Anführungszeichen, erhalten Sie identische Ergebnisse wie bei der Eingabe von "blah.py foo". Jetzt sind Sie in der Lage, den Rest Ihres Problems selbst herauszufinden.
(Oder veröffentlichen Sie weitere hilfreiche Informationen in Ihrer Frage, z. B. das tatsächliche Ausschneiden und Einfügen von Kopien dessen, was Sie in der Konsole sehen. Beachten Sie, dass Personen, die solche Dinge tun, ihre Fragen zur Abstimmung stellen und Reputationspunkte erhalten, sowie mehr Personen werden ihnen wahrscheinlich mit guten Antworten helfen.)
Eingebracht von Kommentaren:
Selbst wenn assoc und ftype die richtigen Informationen anzeigen, kann es vorkommen, dass die Argumente entfernt werden. In diesem Fall kann es hilfreich sein, die relevanten Registrierungsschlüssel für Python direkt zu reparieren. Stellen Sie die
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
Schlüssel zu:
"C:\Python26\python26.exe" "%1" %*
Vermutlich %*
fehlte zuvor. Ebenso einstellen
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
auf den gleichen Wert. Siehe http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Der Registry - Pfad kann variieren, Verwendung python26.exe
oder python.exe
oder je nachdem , was bereits in der Registrierung.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command