Démarrer Python à partir de Windows PowerShell

Je sais que cela ressemble à une réponse à des milliers de fois, mais aucune des réponses traditionnelles concernant l’environnement PATH ne fonctionne.

Je veux exécuter ce qui suit dans Windows 7, dans Powershell:

python mycode.py 

Cependant, Powershell renvoie une erreur indiquant que python not recognized as an applet, function, application,...

Ce sont mes variables de chemin:

Variables utilisateur:

 PATH C:\Python27\Lib\site-packages\PyQt4; C:\Python27; C:\Python27\DLLs; C:\Python27\Scripts; C:\Python27\Lib\site-packages\vtk; C:\Python27\gnuplot\binary; C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3; C:\Program Files (x86)\pythonxy\console; C:\MinGW32-xy\bin; C:\Program Files (x86)\pythonxy\swig; C:\Program Files (x86)\pythonxy\gettext\bin PATHEXT .PY;.PYW PYTHON_INCLUDE C:\Python27\include PYTHON_LIB C:\Python27\libs\python27.lib 

et variables système:

 PATH C:\Python27\Lib\site-packages\PyQt4; C:\Python27; C:\Python27\DLLs; C:\Python27\Scripts; C:\Python27\Lib\site-packages\vtk; C:\Python27\gnuplot\binary; C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3; C:\Program Files (x86)\pythonxy\console; C:\MinGW32-xy\bin; C:\Program Files (x86)\pythonxy\swig; C:\Program Files (x86)\pythonxy\gettext\bin; C:\WINDOWS\system32; C:\WINDOWS 

J’ai essayé ce qui suit:

 $env:Path = $env:Path + ";C:\Python27\" [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User") 

sans succès. (J’ai essayé de démarrer une nouvelle session Powershell, bien sûr, et j’ai même essayé de redémarrer mon PC)

Serait-ce que PowerShell ne lit pas correctement la variable de chemin d’access ou que je n’ai pas de permission? Je suis perdu, sachant notamment que cela fonctionne bien sur une autre installation de Windows 7. Je note que la frappe:

 python.exe 

… ouvre un terminal Python comme prévu.

Edit: Ok j’ai essayé le code test.py suivant:

 # -*- coding: utf-8 -*- print "Hello" input() python.exe test.py 

ouvrez un nouveau terminal avec “Hello” dedans et attendez ma saisie mais je ne le veux pas, j’attends le comportement normal, avec “Hello” imprimé dans PowerShell, un message d’erreur dans PowerShell et ainsi de suite.

Edit2: J’ai remarqué que la variable “Path” donnée dans PowerShell par: Get-ChildItem Env

N’est pas égal à celui des options W7 “Système -> Paramètres système avancés -> Variable d’environnement”. c’était seulement :

 ;C:\Python27 

Comme si ma précédente ligne de commande [Environment] :: SetEnvironmentVariable (“Path”, “$ env: Path; C: \ Python27”) venait d’y écrire. Corriger cela n’a pas résolu mon problème non plus.

Exécuter n’importe quel exécutable en utilisant Powershell (pas seulement Python.exe) est possible en utilisant plusieurs approches, mais ce qui a le mieux fonctionné pour moi est iex .

Les étapes de base que je suis sont les suivantes:

  • Trouvez le chemin d’access à l’exécutable
  • Construire une chaîne de commande
  • Exécuter iex dessus. Utilisez & pour comptabiliser les espaces dans les chemins de fichiers.

Pour trouver l’exécutable, j’utilise généralement get-command . Cette recherche PATH:

  if (get-command curl.exe) { $exePath = "curl.exe" } $Cmd = '"'+ $exePath + '"' + ' args' iex "& $curlCmd" 

J’espère que cela t’aides.

L’ajout de “C \ Python27” dans “Système -> Paramètres système avancés -> Variable d’environnement” aux variables système a résolu mon problème. Pour moi, c’était uniquement dans les variables utilisateur.