Wie zum ausführen von Python-Skripts in Windows?
Habe ich ein einfaches Skript blah.py (mit Python 2):
import sys
print sys.argv[1]
Wenn, führe ich mein Skript von:
python c:/..../blah.py argument
Er druckt argument, aber wenn ich das Skript ausführen, indem Sie:
blah.py argument
Fehler tritt auf:
IndexError...
Also Argumente, die nicht-pass-Skript.
python.exe im PFAD. Ordner mit blah.py auch im PFAD.
python.exe ist das Standard-Programm zum ausführen von *.py-Dateien.
Was ist das problem?
buchen Sie ein code-snippet ein, die uns helfen könnten, Ihnen zu helfen.
Mann ohne crystall ball hat gab bereits eine Lösung=) print sys.argv[1] erzeugt diesen Fehler.
Wenn Sie mehrere Versionen von Python installiert haben, müssen Sie möglicherweise das stackoverflow.com/questions/1934675/....
Manuell sagen python, um mein Skript aus der registry: "C:\Python27\python.exe" "C:\Python27\tpt.py" "%1"`
Mann ohne crystall ball hat gab bereits eine Lösung=) print sys.argv[1] erzeugt diesen Fehler.
Wenn Sie mehrere Versionen von Python installiert haben, müssen Sie möglicherweise das stackoverflow.com/questions/1934675/....
Manuell sagen python, um mein Skript aus der registry: "C:\Python27\python.exe" "C:\Python27\tpt.py" "%1"`
InformationsquelleAutor ton4eg | 2009-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie ein Skript auszuführen, ohne die Eingabe von "python" vor, müssen Sie wissen, zwei Dinge darüber, wie Windows startet das Programm. Zuerst ist herauszufinden, auf welche Art von Datei Windows denkt, es ist:
Als Nächstes müssen Sie wissen, wie Windows ausgeführt wird, die Dinge mit dieser Erweiterung. Es ist im Zusammenhang mit der Datei-geben Sie "Python".- Datei", damit dieser Befehl zeigt, was Sie tun werden:
Also auf meinem Rechner, wenn ich geben "blah.py foo", führt es diese genauen Befehl, mit keinen Unterschied in den Ergebnissen, als wenn ich getippt hätte das voll, was mich selbst:
Wenn du die gleiche Sache, einschließlich der Anführungszeichen, dann erhalten Sie Ergebnisse identisch, wenn Sie geben Sie einfach "blah.py foo". Jetzt bist du in einer position, um herauszufinden, den rest Ihres Problems für sich selbst.
(Oder post weitere nützliche Informationen in Ihre Frage, wie die tatsächlichen cut-and-paste kopiert, was Sie sehen in der Konsole. Beachten Sie, dass die Menschen, die es tun, die Art von Sache, die bekommen Ihre Fragen abgestimmt, und Sie erhalten reputation-Punkte, und immer mehr Menschen sind wahrscheinlich, um Ihnen zu helfen mit guten Antworten.)
Brachte Aus Kommentare:
Selbst wenn assoc und ftype Anzeige die richtigen Informationen, kann es passieren, dass die Argumente werden abgestreift. Was kann helfen, in diesem Fall ist direkt die Festsetzung der entsprechenden Registrierungsschlüssel für Python. Legen Sie die
Schlüssel:
Wahrscheinlich, bisher
%*
fehlte. Ähnlich, setzen Sieden gleichen Wert. Sehen 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, verwendenpython26.exe
oderpython.exe
oder je nachdem, welcher bereits in der Registrierung.HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
assoc
undftype
Anzeige die richtigen Informationen, kann es passieren, dass die Argumente werden abgestreift. Was kann helfen, in diesem Fall ist direkt die Festsetzung der entsprechenden Registrierungsschlüssel für Python. Legen Sie dieHKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
Schlüssel:"C:\Python26\python26.exe" "%1" %*
Wahrscheinlich, bisher%*
fehlte. Ähnlich, setzen SieHKEY_CLASSES_ROOT\py_auto_file\shell\open\command
auf den gleichen Wert. Siehe eli.thegreenplace.net/2010/12/14/...Dein Kommentar war die ultimative Lösung für mich. Auch mit den Verbänden Lesen richtig, diese beiden Tasten waren beide falsch.
Ich habe auch Probleme mit HKEY_CLASSES_ROOT\.py\OpenWithProgids gesetzt, um etwas VisualStudio bezogen, spezifisch, wenn ich versuche zu laufen Python-Skripte in meinem AppVeyor tests. Siehe help.appveyor.com/discussions/problems/....
Ich habe ähnliches Problem. Anaconda standardmäßig Hinzugefügt registry-Schlüssel (mit dem fehlenden %*
In Win10 Schreibe ich
test.py 123
und ich bekomme123
gedrucktsys.argv[1]
. Hat Microsoft etwas geändert?InformationsquelleAutor Peter Hansen
sollten Sie die Standard-Anwendung für die Verarbeitung von python-Dateien werden python.exe.
rechten Maustaste auf eine *.py-Datei, wählen Sie "Öffnen Mit" - dialog. Dort wählen Sie "python.exe" der Haken bei "immer mit diesem Programm für diesen Dateityp" (so ähnlich).
dann deine python-Dateien werden immer mit laufen python.exe
InformationsquelleAutor santosc
Zusätzlich, wenn Sie wollen, um in der Lage zu führen Sie Ihre python-Skripte ohne Eingabe des
.py
(oder.pyw
) am Ende der name der Datei, die Sie hinzufügen möchten.PY
(oder.PY;.PYW
), um die Liste der Erweiterungen, die in der Umgebungsvariable PATHEXT.In Windows 7:
rechten Maustaste auf Computer
Links-klicken Sie auf Eigenschaften
Links-klicken Sie auf " Erweiterte system-Einstellungen
Links-klicken Sie auf die Registerkarte "Erweitert"
Links-klicken Sie auf Umgebungsvariablen...
unter "Systemvariablen" nach unten scrollen, bis Sie sehen, PATHEXT
Links-klicken Sie auf PATHEXT, um es zu markieren
Links-klicken Sie auf Bearbeiten...
Bearbeiten "Variable value", so dass es enthält
;.PY
(die Ende-Taste springt an das Ende)Links-klicken Sie auf OK
Links-klicken Sie auf OK
Links-klicken Sie auf OK,
Hinweis #1: command-prompt von windows, nicht die change w/o geschlossen und wieder geöffnet.
Hinweis #2: der Unterschied zwischen den
.py
und.pyw
Erweiterungen ist, dass der ehemalige öffnet sich die Eingabeaufforderung, wenn Sie ausgeführt wird, und die letzteren nicht.Auf meinem computer Hinzugefügt habe ich
;.PY;.PYW
als die Letzte (niedrigste Priorität) - Erweiterungen, also die "vorher" und "nachher" - Werte von PATHEXT waren:bevor:
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
nach
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
Hier sind einige lehrreiche Befehle:
InformationsquelleAutor Dave Burton
Können Sie installieren pylauncher. Es wird verwendet, um zu starten .py, .pyw, .pyc, .pyo-Dateien und unterstützt mehrere Python-Installationen:
Starten Sie Ihre Python-Skript ohne Angabe .py-Erweiterung, wenn Sie haben .py, .pyw in der Umgebungsvariable PATHEXT:
Es fügt Unterstützung für shebang (
#!
Kopfzeile) wählen Sie die gewünschte Python-version auf Windows wenn Sie mehrere Versionen installiert. Sie benutzen könnte *nix-kompatibel-syntax#! /usr/bin/env python
.Können Sie angeben, version explizit z.B., zu laufen, mit der neuesten installierten Python-3-version:
Sollte es auch fix Ihre
sys.argv
Problem als Nebenwirkung.href="https://docs.python.org/3/using/windows.html#python-launcher-for-windows" >Python launcher enthalten ist in Python 3.3 also, es ist gut genug
Vielleicht. Aber ich habe es nicht geschafft, installieren Sie Python 3 auf Windows. Vielleicht kann man mir hier helfen.
InformationsquelleAutor jfs
Ich hatte das gleiche problem, aber in dem Kontext, dass man mein Paket code für Windows-Benutzer (komme von Linux).
Mein Paket enthält eine Reihe von Skripts, die mit Kommandozeilen-Optionen.
Muss ich diese scripts installiert zu bekommen an der entsprechenden Stelle, auf der Windows auf den Computern der Benutzer, so dass Sie aufrufen können Sie Sie von der Befehlszeile.
Denn das Paket ist angeblich Benutzer-freundlich, fragt mein Benutzer ändern Sie Ihre registry um diese Skripts zu starten, wäre unmöglich.
Stieß ich auf eine Lösung, dass die Leute bei Kontinuum Gebrauch für Python-Skripts, die kommen mit Ihrem Anaconda-Paket -- überprüfen Sie Ihre Anaconda/Scripts-Verzeichnis für Beispiele.
Für ein Python-Skript
test
erstellen Sie zwei Dateien: einetest.bat
und eintest-script.py
.test.bat
sieht wie folgt aus (die.bat
Dateien inAnaconda\Scripts
nennenpython.exe
mit einem relativen Pfad, den ich angepasst für meine Zwecke):test-script.py
ist Ihre eigentliche Python-Skript:Lassen Sie diese beiden Dateien in Ihrem lokalen Verzeichnis können Sie aufrufen, Ihre Python-Skript durch den
.bat
DateiWenn Sie kopieren Sie beide Dateien auf einen Speicherort, der auf Ihre
PATH
(wieAnaconda\Scripts
), dann können Sie auch aufrufen, Ihr Skript durch weglassen der.bat
suffixDisclaimer: ich habe keine Ahnung, was Los ist und wie das funktioniert, und so würde schätzen jede Erklärung.
.bat
wrapper für jedes Python-Skript ist umständlich und redundant. Ich würde das nicht empfehlen.InformationsquelleAutor
Auf Windows,
Zu führen Sie ein python-Modul, ohne die Eingabe von "python",
--> Rechts Klick-python(*.py-Datei)
--> öffnen mit-Eigenschaft auf "python.exe"
--> Überprüfen Sie die "immer mit diesem Programm für diesen Dateityp"
--> fügen Sie den Pfad der python.exe auf variable Umgebung wie zB Anhängen
C:\Python27 um die PATH-Umgebungsvariable.
Zu Führen Sie ein python-Modul, ohne Tastatur ".py" - Erweiterung
--> Bearbeiten von system-variable PATHEXT und Anhängen ".PY" - Erweiterung auf der Liste.
InformationsquelleAutor Ashfaq Memon
Gefunden, eine sehr nützliche Antwort hier: , Wie verschiedene python-Versionen in cmd?
Als J. F. Sebastian schlägt vor, Python Launcher für Windows ist die beste und die Standard-Wahl für den Start andere version von Python in Windows. Es verwendet, um ein Drittanbieter-tool, aber jetzt ist es offiziell unterstützt, seit Python 3.3.
Dies ist ein großartiges Werkzeug, es einfach verwenden!
InformationsquelleAutor laike9m
Können Sie ausführen python.exe von jeder Karte?
Wenn Sie dies nicht tun, chek, wenn Sie die korrekten Werte für python.exe in die PATH-enviroment
Sind Sie im gleichen Verzeichnis wie blah.py. Überprüfen Sie dies durch die Ausgabe von Befehl -> Bearbeiten blah.py und überprüfen Sie, ob Sie diese Datei öffnen
EDIT:
In diesem Fall können Sie nicht. (python arg bedeutet, dass Sie anrufen python.exe whit einige Parameter, die python vermuten, dass mit dem Namen des Skripts, die Sie ausführen möchten)
Können Sie erstellen bat-Datei whit Linien in Ihrem Pfad anzeigen und ausführen .bat-Datei
Beispiel:
In einem der Path-maps erstellen bla bla bla.py.bat
Bearbeiten Sie die Datei und legen Sie die Linie
Können Sie jetzt ausführen blah.py aus anywere, weil Sie nicht brauchen, zu setzen .bat-Erweiterung beim ausführen von bat-Dateien
Ralu, brauchen Sie nicht eine batch-Datei zum ausführen eines python-Skript auf diese Weise. Verwenden Sie die PATHEXT-Umgebung var .py und .pyw als ausführbare Datei-Erweiterungen. Dieser var ist, warum Sie nicht brauchen, um anzugeben .bat.
InformationsquelleAutor Luka Rahne
Wenn das, was ich verstanden, es ist so:
KOPIEREN (nicht löschen) python.exe und umbenennen py.exe und ausführen:
InformationsquelleAutor Lucas Paz
Führen Sie einfach den Befehl:
Vorausgesetzt, ist der name der Datei in gleichen Ordner und Python bereits Hinzugefügt wurden, um die Umgebungsvariablen.
InformationsquelleAutor Mwizak