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.
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.
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
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
.
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.
Recommended Posts