J'essaie de suivre le guide de Zed Shaw sur Learning Python the Hard Way. J'ai besoin d'utiliser Python dans Powershell. J'ai Python 2.7.3 installé dans C:\Python27
. Chaque fois que je tape python dans Powershell, le message d'erreur «python» n'est pas reconnu comme nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme utilisable. J'ai aussi tapé ceci: [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
C'était une solution suggérée, mais taper python dans Powershell ne fait toujours rien. Je peux taper "start python" et cela ouvre une fenêtre avec python mais j'en ai besoin dans Powershell. Merci.
Essayez de définir le chemin de cette façon:
$env:path="$env:Path;C:\Python27"
Pour ce qui vaut la peine, cette commande l'a fait pour moi (Python3.3):
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\Python33", "Machine")
Je devais simplement redémarrer le Powershell après cela.
$env:path="$env:Path;C:\Python27"
ne le définira que pour la session en cours. La prochaine fois que vous ouvrirez Powershell, vous devrez refaire la même chose.
La [Environment]::SetEnvironmentVariable()
est la bonne façon, et elle aurait défini votre variable d'environnement PATH de manière permanente. Il suffit de redémarrer Powershell pour voir l’effet dans ce cas.
Pour une solution permanente, j’ai trouvé les solutions suivantes:
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python 3.5")
Le répertoire n’est pas configuré correctement, veuillez donc suivre ces étapes.
Dans la zone "Valeur variable", assurez-vous de voir ce qui suit:
; c:\python27 \; c:\python27\scripts
Cliquez sur "OK", testez cette modification en redémarrant votre windows powershell. Type
python
Maintenant, la version 2 de Python fonctionne! Yay!
Parfois, vous installez Python sous Windows sans que le chemin d'accès ne soit correctement configuré.
Assurez-vous d'entrer [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User")
dans PowerShell pour le configurer correctement.
Vous devez également redémarrer PowerShell ou l’ensemble de votre ordinateur pour le réparer réellement.
Du Guide Python , voici ce qui a fonctionné pour moi (Python 2.7.9): [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")
Essayez la commande de cette façon:
PS C:\Users\XXX>python.exe
au lieu de:
C:\Users\XXX>python
Pour pouvoir utiliser Python immédiatement sans redémarrer la fenêtre du shell, vous devez modifier le chemin de la machine, du processus et de l'utilisateur.
Function Get-EnvVariableNameList {
[cmdletbinding()]
$allEnvVars = Get-ChildItem Env:
$allEnvNamesArray = $allEnvVars.Name
$pathEnvNamesList = New-Object System.Collections.ArrayList
$pathEnvNamesList.AddRange($allEnvNamesArray)
return ,$pathEnvNamesList
}
Function Add-EnvVarIfNotPresent {
Param (
[string]$variableNameToAdd,
[string]$variableValueToAdd
)
$nameList = Get-EnvVariableNameList
$alreadyPresentCount = ($nameList | Where{$_ -like $variableNameToAdd}).Count
#$message = ''
if ($alreadyPresentCount -eq 0)
{
[System.Environment]::SetEnvironmentVariable($variableNameToAdd, $variableValueToAdd, [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable($variableNameToAdd, $variableValueToAdd, [System.EnvironmentVariableTarget]::Process)
[System.Environment]::SetEnvironmentVariable($variableNameToAdd, $variableValueToAdd, [System.EnvironmentVariableTarget]::User)
$message = "Enviromental variable added to machine, process and user to include $variableNameToAdd"
}
else
{
$message = 'Environmental variable already exists. Consider using a different function to modify it'
}
Write-Information $message
}
Function Get-EnvExtensionList {
$pathExtArray = ($env:PATHEXT).Split("{;}")
$pathExtList = New-Object System.Collections.ArrayList
$pathExtList.AddRange($pathExtArray)
return ,$pathExtList
}
Function Add-EnvExtension {
Param (
[string]$pathExtToAdd
)
$pathList = Get-EnvExtensionList
$alreadyPresentCount = ($pathList | Where{$_ -like $pathToAdd}).Count
if ($alreadyPresentCount -eq 0)
{
$pathList.Add($pathExtToAdd)
$returnPath = $pathList -join ";"
[System.Environment]::SetEnvironmentVariable('pathext', $returnPath, [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('pathext', $returnPath, [System.EnvironmentVariableTarget]::Process)
[System.Environment]::SetEnvironmentVariable('pathext', $returnPath, [System.EnvironmentVariableTarget]::User)
$message = "Path extension added to machine, process and user paths to include $pathExtToAdd"
}
else
{
$message = 'Path extension already exists'
}
Write-Information $message
}
Function Get-EnvPathList {
[cmdletbinding()]
$pathArray = ($env:PATH).Split("{;}")
$pathList = New-Object System.Collections.ArrayList
$pathList.AddRange($pathArray)
return ,$pathList
}
Function Add-EnvPath {
Param (
[string]$pathToAdd
)
$pathList = Get-EnvPathList
$alreadyPresentCount = ($pathList | Where{$_ -like $pathToAdd}).Count
if ($alreadyPresentCount -eq 0)
{
$pathList.Add($pathToAdd)
$returnPath = $pathList -join ";"
[System.Environment]::SetEnvironmentVariable('path', $returnPath, [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('path', $returnPath, [System.EnvironmentVariableTarget]::Process)
[System.Environment]::SetEnvironmentVariable('path', $returnPath, [System.EnvironmentVariableTarget]::User)
$message = "Path added to machine, process and user paths to include $pathToAdd"
}
else
{
$message = 'Path already exists'
}
Write-Information $message
}
Add-EnvExtension '.PY'
Add-EnvExtension '.PYW'
Add-EnvPath 'C:\Python27\'
Il suffit d’éliminer le mot "utilisateur". Ça va marcher.
Comme MaxPRafferty mentionné :
Juste une note à quiconque atterrit ici depuis Google, le chemin de configuration des réponses est correct, mais ce problème provient probablement du fait qu’il n’a pas donné les droits d’administration du programme d’installation de Python nécessaires pour définir le chemin lui-même. Une alternative peut être simplement de cliquer avec le bouton droit de la souris sur le programme d'installation et de sélectionner Exécuter en tant qu'administrateur, puis réparer l'installation. Si cela ne fonctionne toujours pas, choisissez la réponse [Environnement] ci-dessous qui correspond à votre version de python et à votre répertoire d'installation. - MaxPRafferty 18 novembre 15 à 20:06
Peut-être est-il sage de laisser l’installateur Python ajouter le chemin lui-même. Le piège ici est que, par défaut, le programme d’installation Python ne PAS ajoute le chemin pour vous. Vous devriez regarder attentivement (en faisant défiler vers le bas pour voir ce qui a été installé) pendant le processus d'installation au lieu de passer directement à next
ing jusqu'à la fin.
Ce qu'il a manqué de dire, c'est que vous ne pouvez pas run as administrator
une fois que vous l'avez installé. Désinstaller et réinstaller peut s’avérer utile, mais le plus simple est de cliquer avec le bouton droit de la souris et sur Troubleshoot compatibility
, en veillant cette fois à vérifier le «chemin d’ajout» dans la boîte de dialogue «qu’installe-t-il à installer» avant de frapper next
. Puis redémarrez Powershell. Voilà. Ça marche pour moi.