it-swarm.com.de

Ausführen von Python-Skripts über die Windows-Befehlszeile

Ich habe gerade angefangen, Python mit Learning Python von Mark Luts zu lernen. In seinem Buch bietet er ein Beispiel für ein einfaches Skript, das über die Windows-Shell aufgerufen wird. Im Beispiel nennt er Folgendes:

C:\code> python script1.py

Ich habe die Umgebungsvariablen auf meinem Computer so geändert, dass ich sie anrufen kann

C:\User\Example> python

um den Dolmetscher zu öffnen und ich kann auch so etwas anrufen

C:\User\Example> script1

um ein Skript auszuführen, das ich geschrieben und in meinem gewünschten Verzeichnis abgelegt habe. Mein Problem ist, dass ich nicht anrufen kann

C:\User\Example> python script1.py

in meiner Befehlszeile genauso wie im Buch. Er hat etwas über eine PYTHONPATH-Umgebungsvariable erwähnt, diese Variable ist jedoch nicht auf meinem Computer vorhanden. Ich habe nur 'Pfad', 'TEMP' und 'TMP'. Insbesondere wenn ich versuche, einen solchen Anruf zu tätigen, erhalte ich den Fehler

python: can't open file 'script1.py': [Errno 2] No such file or directory

Was muss ich tun, damit diese Art von Befehl in der Befehlszeile ordnungsgemäß funktioniert?

3
Alden Bernitt

Aus dem Buch (S. 44, 4. Auflage):

Denken Sie schließlich daran, den vollständigen Pfad zu Ihrem Skript anzugeben, wenn es sich in einem anderen Verzeichnis befindet als dem, in dem Sie arbeiten.

Für Ihre Situation bedeutet dies die Verwendung von

C:\User\Example> python C:\User\Example\my_scripts\script1.py

Sie könnten eine Batchdatei schreiben, die in einem vordefinierten Verzeichnis nach dem Skript sucht:

@echo off
setlocal
PATH=C:\User\Example\Python36;%PATH%
SCRIPT_DIR=C:\User\Example\my_scripts
python %SCRIPT_DIR\%*
2
David Cullen

Sie rufen python aus dem Kontext von C:\User\Example an und übergeben ihm den Namen einer Datei, die Sie durch den Interpreter (script1.py) ausführen möchten. Es ist klar, dass die Variable PATH korrekt eingerichtet ist, so dass Sie python von einem beliebigen Standort Ihres Computers aus aufrufen können, da wir feststellen können, dass sie ausgeführt wird, aber Ihr Skript nicht wirklich finden kann. 

Sie haben jedoch in dem Kommentar angegeben, dass sich Ihre Skripts tatsächlich in C:\User\Example\my_scripts befinden. Mit anderen Worten, Sie übergeben python den Namen einer Datei, die nicht existiert !! (zumindest aus dem Inhalt von C:\User\Example).

Sie müssen sich im Verzeichnis des Skripts befinden, damit die ausführbare Datei python sie finden kann. 

Alternativ können Sie den Python-Befehl ausführen und ihm weitere Informationen dazu geben, wo sich das Skript befindet. Sie können beispielsweise python .\my_scripts\script1.py ausführen, wenn Sie innerhalb des Konzepts von C:\User\Example ausgeführt werden und sich Ihre Skripts in C:\User\Example\my_scripts befinden.

0
wheeler