virtualenv unterstützt PowerShell, ist jedoch abhängig von den PowerShell-Einstellungen möglicherweise nicht verfügbar. Wir haben die Ursachen und Gegenmaßnahmen zusammengefasst.
Bei Verwendung der Aktivierung von virtualenv in PowerShell wird möglicherweise die folgende Fehlermeldung angezeigt:
> virtualenv.exe venv
> .\venv\Scripts\activate
.\venv\Scripts\activate :Datei C, da die Skriptausführung auf diesem System deaktiviert ist:\Users\****\developme
nt\venv\Scripts\activate.Ps1 kann nicht gelesen werden. Weitere Informationen finden Sie unter_Execution_Policies」(http://go.microso
ft.com/fwlink/?LinkID=135170)Bitte beziehen Sie sich auf.
Standortzeile:Ein Charakter:1
+ .\venv\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo :Sicherheitsfehler: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Dies liegt an der Skriptausführungsrichtlinie von PowerShell. Sie können die aktuelle Ausführungsrichtlinie mit dem Befehl "Get-ExecutionPolicy" überprüfen.
> Get-ExecutionPolicy
Restricted
"Eingeschränkt" bedeutet "Es kann kein Skript ausgeführt werden. Windows PowerShell kann nur im interaktiven Modus verwendet werden." Ausführliche Informationen zur Ausführungsrichtlinie finden Sie in Microsoft Official Document.
Wenn es "Restricted" bleibt, kann es nicht aktiviert werden. Es gibt die folgenden Methoden als Gegenmaßnahmen.
Starten Sie PowerShell mit Administratorrechten und ändern Sie die Ausführungsrichtlinie mit dem Befehl "Set-ExecutionPolicy" in "RemoteSigned". "RemoteSigned" bedeutet "Das heruntergeladene Skript kann nur ausgeführt werden, wenn es von einem vertrauenswürdigen Herausgeber signiert ist."
> Set-ExecutionPolicy RemoteSigned
Das Dialogfeld "Möchten Sie die Ausführungsrichtlinie ändern?" Wird angezeigt. Geben Sie "Y" ein und drücken Sie die Eingabetaste, um fortzufahren.
Darüber hinaus sagt offizielles Dokument von virtualenv, dass "Set-ExecutionPolicy AllSigned" in Ordnung ist, aber [^ #] my In der Umgebung habe ich den folgenden Fehler erhalten und konnte nicht aktivieren.
[^ #]: Es heißt "Um das Skript verwenden zu können, können Sie die Ausführungsrichtlinie Ihres Systems auf AllSigned lockern, was bedeutet, dass alle Skripte auf dem System digital signiert sein müssen, um ausgeführt zu werden. Da das Virtualenv-Aktivierungsskript von signiert ist Einer der Autoren (Jannis Leidel) genügt diese Ebene der Ausführungsrichtlinie. "
.\venv\Scripts\activate :Datei C.:\Users\****\development\venv\Scripts\activate.Ps1 kann nicht gelesen werden. Datei
C:\Users\****\development\venv\Scripts\activate.ps1 ist nicht digital signiert. Dieses Skript befindet sich auf dem aktuellen System
Kann nicht ausgeführt werden. Weitere Informationen zum Ausführen von Skripten und zum Festlegen von Ausführungsrichtlinien finden Sie unter_Execution_Policies」(http://go.micr
osoft.com/fwlink/?LinkID=135170)Bitte beziehen Sie sich auf.
Standortzeile:Ein Charakter:1
+ .\venv\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo :Sicherheitsfehler: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Wenn Sie die Einstellungen nicht nur für virtualenv ändern möchten, wird empfohlen, dem Befehl von Countermeasure 1 die Option "-Scope Process" hinzuzufügen und "Ausführungsrichtlinie nur für das aktuell geöffnete PowerShell-Fenster ändern" festzulegen. In diesem Fall benötigt PowerShell keine Administratorrechte.
> Set-ExecutionPolicy RemoteSigned -Scope Process
Wenn Sie nicht möchten, dass der Dialog jedes Mal angezeigt wird, können Sie ihn mit der Option "-force" weglassen.
Wenn Sie nach der Implementierung der oben genannten Maßnahmen aktivieren, tritt der Fehler nicht auf. Sie sollten den Namen des Verzeichnisses virtualenv auf der linken Seite des Bildschirms sehen, wie unten gezeigt.
Recommended Posts