[PYTHON] Pour utiliser virtualenv avec PowerShell

virtualenv prend en charge PowerShell, mais il peut ne pas être disponible en fonction des paramètres PowerShell. Nous avons résumé les causes et les contre-mesures.

Cause de "PS Security Exception" lors de l'activation de virtualenv

Lorsque vous utilisez virtualenv activate dans PowerShell, vous pouvez obtenir l'erreur suivante:

> virtualenv.exe venv
> .\venv\Scripts\activate
.\venv\Scripts\activate :Fichier C car l'exécution du script est désactivée sur ce système:\Users\****\developme
nt\venv\Scripts\activate.Impossible de lire ps1. Pour plus d'informations, voir à propos de_Execution_Policies」(http://go.microso
ft.com/fwlink/?LinkID=135170)Prière de se référer à.
Ligne de localisation:Un personnage:1
+ .\venv\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          :Erreur de sécurité: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Cela est dû à la stratégie d'exécution de script de PowerShell. Vous pouvez vérifier la politique d'exécution actuelle avec la commande Get-ExecutionPolicy.

> Get-ExecutionPolicy
Restricted

"Restreint" signifie "Aucun script ne peut être exécuté. Windows PowerShell ne peut être utilisé qu'en mode interactif." Pour plus de détails sur la politique d'exécution, reportez-vous au Document officiel de Microsoft.

S'il reste «Restreint», il ne peut pas être activé. Il existe les méthodes suivantes comme contre-mesures.

Mesure 1

Lancez PowerShell avec des privilèges d'administrateur et utilisez la commande Set-ExecutionPolicy pour changer la stratégie d'exécution en RemoteSigned. «RemoteSigned» signifie «Le script téléchargé ne peut être exécuté que s'il est signé par un éditeur de confiance.»

> Set-ExecutionPolicy RemoteSigned

La boîte de dialogue "Voulez-vous changer la politique d'exécution?" Apparaît. Entrez "Y" et appuyez sur Entrée pour continuer.

De plus, document officiel de virtualenv dit que «Set-ExecutionPolicy AllSigned» est bien, mais [^ #] mon Dans l'environnement, j'ai eu l'erreur suivante et je n'ai pas pu activer.

[^ #]: Il indique "Pour utiliser le script, vous pouvez assouplir la politique d'exécution de votre système à AllSigned, ce qui signifie que tous les scripts du système doivent être signés numériquement pour être exécutés. Puisque le script d'activation de virtualenv est signé par l'un des auteurs (Jannis Leidel) ce niveau de la politique d'exécution suffit. "

.\venv\Scripts\activate :Fichier C:\Users\****\development\venv\Scripts\activate.Impossible de lire ps1. Fichier
C:\Users\****\development\venv\Scripts\activate.ps1 n'est pas signé numériquement. Ce script est sur le système actuel
Ne peut pas être exécuté. Pour plus d'informations sur l'exécution de scripts et la définition de stratégies d'exécution, voir à propos de_Execution_Policies」(http://go.micr
osoft.com/fwlink/?LinkID=135170)Prière de se référer à.
Ligne de localisation:Un personnage:1
+ .\venv\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          :Erreur de sécurité: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Mesure 2

Si vous ne souhaitez pas modifier les paramètres uniquement pour virtualenv, il est recommandé d'ajouter l'option -Scope Process à la commande de Countermeasure 1 et de définir" Modifier la stratégie d'exécution uniquement pour la fenêtre PowerShell actuellement ouverte ". Dans ce cas, PowerShell n'a pas besoin de privilèges d'administrateur.

> Set-ExecutionPolicy RemoteSigned -Scope Process

Si vous ne voulez pas que la boîte de dialogue apparaisse à chaque fois, vous pouvez l'omettre avec l'option -force.

Essayez d'utiliser virtualenv activate après des contre-mesures

Si vous activez après avoir mis en œuvre les mesures ci-dessus, l'erreur ne se produira pas. Vous devriez voir le nom du répertoire virtualenv sur le côté gauche de l'écran comme indiqué ci-dessous.

powershell.jpg

Matériel de référence

Recommended Posts

Pour utiliser virtualenv avec PowerShell
Comment utiliser virtualenv
Comment utiliser virtualenv
[Note] Comment utiliser virtualenv
[Python] Comment utiliser virtualenv
Python: comment utiliser async avec
Comment utiliser ManyToManyField avec l'administrateur de Django
Comment utiliser OpenVPN avec Ubuntu 18.04.3 LTS
Comment utiliser Cmder avec PyCharm (Windows)
Comment utiliser Ass / Alembic avec HtoA
Comment utiliser le japonais avec le tracé NLTK
Comment utiliser le notebook Jupyter avec ABCI
Comment utiliser la commande CUT (avec exemple)
Comment utiliser SQLAlchemy / Connect avec aiomysql
Comment utiliser le pilote JDBC avec Redash
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Utiliser pipdeptree avec virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser la trace GCP avec la télémétrie ouverte
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
Comment utiliser tkinter avec python dans pyenv
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment mettre à jour avec SQLAlchemy?