Esegui direttamente gli script Python in PowerShell


22

Sto usando Windows PowerShell. Diciamo che ho una sceneggiatura chiamata test.pyche stampa alcune cose. Se lo faccio:

PS D:\>.\test.py

quindi apre una finestra CMD che stampa alcune cose e poi si chiude. In realtà sta eseguendo l'interprete Python in CMD. Se lo faccio

PS D:\>python test.py

si comporta come me lo aspetterei, con l'output che appare in PowerShell.

Come posso farlo in modo che lo script venga eseguito in PowerShell quando ne do solo il nome?


Dopo aver aggiornato la PATHEXTvariabile utilizzando la risposta accettata da zdan di seguito, se si inseriscono gli script Python in una directory denominata dalla PATHvariabile di ambiente, non sarà più necessario fornire un percorso completo (o relativo) per eseguirli più. Quindi gli script Python si comportano come qualsiasi altro programma installato e puoi unirli insieme in pipeline con altri programmi / cmdlet ( ad es. get-clipboard | myscript.py ) E tutta quell'altra bontà. :)
TheDudeAbides,

Risposte:


24

Modifica la variabile d'ambiente PATHEXT e aggiungi l'estensione .py.

Aggiungi questa riga al tuo profilo PowerShell :

$env:PATHEXT += ";.py"

oppure puoi semplicemente modificare PATHEXT a livello globale nelle impostazioni di sistema (basta cercare "ambiente" nel menu Start e scegliere l'opzione "Modifica variabili d'ambiente per il tuo account").


-1

È possibile che sia installata più di una versione di Python e la versione utilizzata da IDLE sia più recente. Per vedere quale versione di Python disponi, puoi digitare> python -V da una riga di comando. Se quella versione sembra appropriata, potrebbe essere necessario il percorso completo del file come secondo parametro. Ad esempio> python C: \ myfile.py.

Se hai installato Python correttamente, c'è sempre la possibilità che semplicemente digitando il nome dello script lo eseguirà con Python. Ad esempio> myfile.py

Trovo sempre che l'aggiunta di C: \ Python27 alla variabile% PATH% e .PY alla variabile% PATHEXT% facilita l'esecuzione degli script. In questo caso, solo> myfile dovrebbe funzionare.

Modifica dopo l'aggiornamento:

Digitando solo> python senza parametri si apre python in "modalità interattiva" che è diversa dalla modalità batch o di scripting a cui è destinato lo script. Se eseguito con argomenti, il primo argomento viene preso come percorso del file e ulteriori argomenti vengono passati allo script nell'elenco sys.argv.


Perché copi e incolli la tua risposta da qualche parte? Hai persino dimenticato di copiare correttamente la formattazione e non c'era "Aggiornamento".
Slhck,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.