[PYTHON] So verwenden Sie virtualenv mit PowerShell

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.

Ursache der "PS-Sicherheitsausnahme" beim Aktivieren von virtualenv

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.

Maßnahme 1

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

Maßnahme 2

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.

Versuchen Sie, virtualenv nach Gegenmaßnahmen zu aktivieren

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.

powershell.jpg

Referenzmaterial

Recommended Posts

So verwenden Sie virtualenv mit PowerShell
Verwendung von virtualenv
Verwendung von virtualenv
[Hinweis] Verwendung von virtualenv
[Python] Verwendung von virtualenv
Python: So verwenden Sie Async mit
Verwendung von ManyToManyField mit Djangos Admin
Verwendung von OpenVPN mit Ubuntu 18.04.3 LTS
Verwendung von Cmder mit PyCharm (Windows)
Wie man Ass / Alembic mit HtoA benutzt
Verwendung von Japanisch mit NLTK-Plot
Verwendung des Jupyter-Notebooks mit ABCI
Verwendung des CUT-Befehls (mit Beispiel)
Verwendung von SQLAlchemy / Connect mit aiomysql
Verwendung des JDBC-Treibers mit Redash
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwenden Sie pipdeptree mit virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung der GCP-Ablaufverfolgung mit offener Telemetrie
Geben Sie die ausführbare Python-Datei an, die mit virtualenv verwendet werden soll
Wie man tkinter mit Python in Pyenv benutzt
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verwendung des Generators
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie aktualisiere ich mit SQLAlchemy?