2013-07-19 9 views
7

Sono un neofita della programmazione e Python è la mia prima lingua. Ho aggiunto Python al mio percorso, ma quando uso il prompt dei comandi, non devo aggiungere python prima di myscript.py al contrario di molti tutorial che ho visto. Ecco un esempio:Perché non devo aggiungere "python" prima di richiamare lo script Python?

C:\User\MyName>Welcome.py 
Welcome to Python 
Python is fun 

Quando entro 'python', c'è un errore successiva:

C:\User\MyName>python Welcome.py 
python: can't open file 'Welcome.py': [Errno 2] No such file or directory 

Ho davvero bisogno del 'pitone'? Grazie in anticipo!

+1

Succede per qualsiasi file '.py' o semplicemente' Welcome.py'? (Ho un sospetto ...) – 2rs2ts

+0

Questo è successo a tutti i file .py che ho – user78338

+3

Cosa mostra 'assoc .py' mostra quando viene eseguito nel prompt dei comandi? –

risposta

1

Sì e no.
Dipende davvero da come è scritto lo script.

Sulla maggior parte dei sistemi Unix (Linux, Mac OS), è possibile includere #!/bin/python all'inizio (come prima riga) dello script e quindi eseguirlo semplicemente chiamando il nome file sulla riga di comando. Quella prima riga dice alla shell che questo file contiene un programma python. La shell usa quindi l'interprete python per eseguire il file (traduzione: traduce il tuo $ Welcome.py in $ /bin/python Welcome.py < - nota che Python viene chiamato esplicitamente e che è lo stesso percorso di quello che si trova nella prima riga del tuo file).

Presumibilmente, il sistema operativo Windows può anche essere stato istruito nello stesso modo, anche se non sono mai stato in grado di farlo anche io, né ho provato molto duro (mi sono trasferita lontano da finestre circa 5 anni fa). Questo è il motivo per cui dovrai chiamare esplicitamente lo python.
Chiamare python dice al sistema operativo: "hey, apri quel programma chiamato python e digli di eseguire il file Welcome.py". Questo è esattamente ciò che il comando /bin/python Welcome.py fa su un sistema Unix

+3

Tranne che questo problema è su Windo ws, so ... –

+0

@RiazRizvi: concesso. Questo è il motivo per cui ero scettico sulla pubblicazione di questo in primo luogo. Ma poi ho pensato che si tratta di informazioni valide e fornisce alcune informazioni su cosa sta succedendo. Speravo anche che qualcuno che ne sapeva più di me potesse unire la parte che mi mancava. Ho postato questo non per il rappresentante, ma per le informazioni di essere là fuori. Per favore fatemi sapere se pensate che non dovrebbe essere qui (e se è un'opinione popolare) e, lo eliminerò – inspectorG4dget

+0

In Windows, penso che dovete aggiungere 'python.exe' (tipicamente in' C: \ Python33' o qualcosa di simile) a 'PATH' per ottenere lo stesso risultato. – 2rs2ts

3

Se avete seguito la Python on Windows FAQ, sembra che il programma di installazione standard di Python ha già preso la libertà di associating .py files con un comando di apertura a ..\..\Python\python.exe "%1" %*.

How do I make Python scripts executable?

On Windows, the standard Python installer already associates the .py extension with a file type (Python.File) and gives that file type an open command that runs the interpreter (D:\Program Files\Python\python.exe "%1" %*). This is enough to make scripts executable from the command prompt as ‘foo.py’. If you’d rather be able to execute the script by simple typing ‘foo’ with no extension you need to add .py to the PATHEXT environment variable.

Chi avrebbe voluto! Questo non era il modo in cui era di quattro anni fa quando ho installato Python per la prima volta sul mio computer Windows.

1

Quando si installa python su Windows con un normale programma di installazione, i file .py sono associati al python.exe installato. Quando si digita Welcome.py, Windows cerca nella directory locale e in seguito tutti i percorsi nella variabile PATH per un programma denominato Welcome.py e lo esegue tramite python. Poiché questo ha funzionato per te, significa che Welcome.py si trova da qualche parte nel tuo percorso o nella tua directory locale.

È possibile capire le associazioni dei file con i comandi assoc .py e ftype Python.File. Anche i comandi echo %PATH% e echo %PATHEXT% sono utili.

Quando si digita python Welcome.py, Windows cerca tutti i percorsi nella variabile PATH per un programma che inizia con "python" e termina con un'estensione in PATHEXT. Trova 'python.exe' e lo esegue. Python, a sua volta, cerca uno script chiamato Welcome.py nella directory corrente. Poiché questo non ha funzionato per te, significa che Welcome.py non è nella tua directory locale. Avrebbe funzionato se avessi dato il percorso giusto per Welcome.py.

È possibile scoprire dove Welcome.py è con il comando (non sorprendentemente) where Welcome.py.

Se si dispone di una singola installazione Python, non è necessario chiamare .

Problemi correlati