it-swarm.com.de

Ich versuche Python in Powershell zu verwenden

Ich versuche, Zed Shaws Anleitung zum Erlernen von Python auf die harte Tour zu folgen. Ich muss Python in Powershell verwenden. Ich habe Python 2.7.3 in C:\Python27 installiert. Wenn ich in Powershell Python eingebe, erhalte ich eine Fehlermeldung, die besagt, dass der Begriff "Python" nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt wird. Ich gab auch Folgendes ein: [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User") Dies war eine vorgeschlagene Lösung, aber das Eingeben von Python in Powershell macht immer noch nichts. Ich kann "start python" eingeben und es öffnet sich ein Fenster mit Python, aber ich brauche es in Powershell. Vielen Dank. 

44
masonc15

Stellen Sie den Pfad so ein:

 $env:path="$env:Path;C:\Python27"
76
Mike Shepard

Dieser Befehl hat es für mich getan (Python3.3): 

[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\Python33", "Machine")

Ich musste nur die Powershell danach neu starten. 

20

$env:path="$env:Path;C:\Python27" setzt es nur für die aktuelle Sitzung. Wenn Sie Powershell das nächste Mal öffnen, müssen Sie dasselbe noch einmal tun.

[Environment]::SetEnvironmentVariable() ist der richtige Weg und hätte Ihre Umgebungsvariable PATH dauerhaft festgelegt. Sie müssen nur Powershell erneut starten, um den Effekt in diesem Fall zu sehen.

18
manojlds

Für eine dauerhafte Lösung habe ich folgendes gefunden:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python 3.5")
8
Matt

Das funktioniert bei mir permanent:

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

Das Verzeichnis ist nicht richtig eingestellt. Folgen Sie diesen Schritten.

  1. "Mein Computer"> Rechtsklick> Eigenschaften> "Systemeigenschaften"> "Erweitert"
  2. "Umgebungsvariablen"> "Pfad"> "Bearbeiten"
  3. Stellen Sie im Feld "Variablenwert" Folgendes sicher:

    ; c:\python27 \; c:\python27\scripts

  4. Klicken Sie auf "OK". Testen Sie diese Änderung, indem Sie die Windows-Powershell neu starten. Art 

    python

  5. Jetzt läuft Python Version 2! Yay!

5
HeggyHere

Manchmal installieren Sie Python unter Windows und konfigurieren den Pfad nicht richtig. 

Stellen Sie sicher, dass Sie [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User") eingeben.
in PowerShell, um es richtig zu konfigurieren. 

Sie müssen entweder PowerShell oder Ihren gesamten Computer neu starten, damit das Problem behoben wird.

3
user2145645

Aus dem Python Guide hat dies bei mir funktioniert (Python 2.7.9): [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")

2
myidealab

Versuchen Sie den Befehl auf diese Weise:

PS C:\Users\XXX>python.exe

anstatt:

C:\Users\XXX>python
1
Mao

Um Python sofort verwenden zu können, ohne das Shell-Fenster neu zu starten, müssen Sie den Pfad für die Maschine, den Prozess und den Benutzer ändern.

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\'
0

Beseitigen Sie einfach das Wort "Benutzer". Es wird klappen.

0
Xshan

Als MaxPRafferty erwähnt :

Nur ein Hinweis an alle, die hier bei google landen. Der Pfad für die Antworteinstellungen ist alle korrekt. Dieses Problem ist jedoch wahrscheinlich darauf zurückzuführen, dass dem Python-Installationsprogramm keine Administratorrechte erteilt wurden, um den Pfad selbst festzulegen. Alternativ können Sie einfach mit der rechten Maustaste auf das Installationsprogramm klicken und als Administrator ausführen auswählen, um die Installation zu reparieren. Wenn dies immer noch nicht funktioniert, wählen Sie unten die Antwort [Umgebung] aus, die Ihrer Python-Version und dem Installationsverzeichnis entspricht. - MaxPRafferty 18. November 15 um 20:06 Uhr 

Vielleicht ist es ratsam, den Python-Installer den Pfad selbst hinzufügen zu lassen. Die Falle ist hier, dass der Python-Installer standardmäßig NICHT den Pfad für Sie hinzufügt. Sie sollten während des Installationsvorgangs sorgfältig nachschauen (indem Sie nach unten scrollen, um zu sehen, was installiert wurde), und nicht direkt next bis zum Ende.

Was er vermisst hat zu sagen, ist, dass Sie nicht run as administrator können, nachdem Sie ihn installiert haben. Deinstallieren und erneut installieren ist zwar möglich, aber am einfachsten klicken Sie mit der rechten Maustaste und Troubleshoot compatibility. Achten Sie diesmal darauf, den "Pfad hinzufügen" im Dialogfeld "Was ist zu installieren" zu überprüfen, bevor Sie next aufrufen. Starten Sie dann Powershell erneut. Voilà. Für mich geht das.

0
Kangqiao Zhao