Kører Python scripts gennem Windows Command Line

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lige begyndt at lære Python ved at bruge Learning Python af Mark Luts. I sin bog tilbyder han et eksempel på et simpelt script, der kaldes gennem Windows-skalen. I eksemplet er han opkald som følger:


C:code> python script1.py


Jeg har gået og ændret miljøvariablerne på min maskine, så jeg kan ringe


C:UserExample> python


at åbne tolken, og jeg kan også kalde noget lignende


C:UserExample> script1


at køre et script, som jeg har skrevet og placeret i min ønskede mappe. Mit problem er, at jeg ikke kan ringe


C:UserExample> python script1.py


i min kommandolinje på samme måde som han gør i bogen. Han har nævnt noget om en PYTHONPATH miljøvariabel, men denne variabel findes ikke på min maskine. Jeg har kun 'sti', 'TEMP' og 'TMP'. Særligt, når jeg forsøger at foretage et sådant opkald, får jeg fejlen


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


Hvad skal jeg gøre for at få denne form for kommando til at fungere ordentligt på kommandolinjen?

Bedste reference


Fra bogen (s. 44, 4. ed):



  Endelig husk at give den fulde sti til dit script, hvis det lever i en anden mappe fra den, hvor du arbejder.



For din situation betyder det at bruge


C:UserExample> python C:UserExamplemy\_scriptsscript1.py


Du kan skrive en batchfil, der leder efter scriptet i en foruddefineret mappe:


@echo off
setlocal
PATH=C:UserExamplePython36;\%PATH\%
SCRIPT\_DIR=C:UserExamplemy\_scripts
python \%SCRIPT\_DIR\%*

Andre referencer 1


Du ringer python inden for rammerne af C:UserExample og sender det et navn på en fil, du vil løbe gennem ejpreteren (script1.py). Det er klart, at variablen PATH er korrekt konfigureret, så du kan ringe python fra hvor som helst på din computer, da vi kan se, at den kører, men ikke rent faktisk kan finde dit script.


Du udtalte dog i kommentaren, at dine scripts faktisk er placeret i C:UserExamplemy\_scripts. Med andre ord sender du python et navn på en fil, der ikke eksisterer !! (i det mindste fra konteksten til C:UserExample).


Du skal være i mappen for scriptet for at python eksekverbar skal kunne finde den.


Alternativt kan du køre python-kommandoen og give den flere oplysninger om, hvor scriptet er. For eksempel kan du køre python .my\_scriptsscript1.py, hvis du kører fra konteksten til C:UserExample og dine scripts er i C:UserExamplemy\_scripts.