Exécutez directement des scripts Python dans PowerShell

22

J'utilise Windows PowerShell. Disons que j'ai un script appelé test.pyqui imprime quelques éléments. Si je fais:

PS D:\>.\test.py

puis il ouvre une fenêtre CMD qui imprime quelques éléments puis se ferme. Il exécute en fait l'interpréteur Python sous CMD. Si je fais

PS D:\>python test.py

il agit comme je m'y attendais, avec la sortie apparaissant dans PowerShell.

Comment puis-je faire en sorte que le script s'exécute dans PowerShell lorsque je donne juste son nom?

jcrawfordor
la source
Une fois que vous avez mis à jour votre PATHEXTvariable en utilisant la réponse acceptée de zdan ci-dessous, si vous placez des scripts Python dans un répertoire nommé par votre PATHvariable d'environnement, il ne sera plus nécessaire de fournir un chemin complet (ou relatif) pour les exécuter. Ensuite, les scripts Python se comportent comme n'importe quel autre programme installé, et vous pouvez les joindre ensemble dans des pipelines avec d'autres programmes / applets de commande ( par exemple get-clipboard | myscript.py ), et toutes ces autres qualités. :)
TheDudeAbides

Réponses:

24

Modifiez la variable d'environnement PATHEXT et ajoutez l'extension .py.

Ajoutez simplement cette ligne à votre profil PowerShell :

$env:PATHEXT += ";.py"

ou vous pouvez simplement modifier PATHEXT globalement dans les paramètres système (recherchez simplement dans le menu Démarrer "environnement" et choisissez l'option "Modifier les variables d'environnement pour votre compte").

zdan
la source
-1

Il se peut que plusieurs versions de Python soient installées et que la version utilisée par IDLE est plus récente. Pour voir quelle version de python vous avez, vous pouvez taper> python -V sur une ligne de commande. Si cette version semble appropriée, vous devrez peut-être le chemin d'accès complet au fichier comme deuxième paramètre. Par exemple> python C: \ monfichier.py.

Si vous avez installé Python correctement, il y a toujours une chance que le simple fait de taper le nom du script l'exécute avec python. Par exemple> monfichier.py

Je trouve toujours que l'ajout de C: \ Python27 à la variable% PATH% et .PY à la variable% PATHEXT% facilite l'exécution des scripts. Dans ce cas, juste> monfichier devrait fonctionner.

Modifier après la mise à jour:

Taper juste> python sans paramètres ouvre python en 'mode interactif' qui est différent du mode batch ou script pour lequel votre script est destiné. S'il est exécuté avec des arguments, le premier argument est pris comme chemin d'accès au fichier et d'autres arguments sont passés au script dans la liste sys.argv.

Supri Adi
la source
Pourquoi copiez-vous et collez votre réponse quelque part? Vous avez même oublié de copier correctement la mise en forme et il n'y avait aucune "mise à jour" là-dedans.
slhck