La dernière version de virtualenv (16.7.2) sur python v.3.7.4 a 4 lignes supplémentaires pour le script "activate.ps1", qui, lorsqu'il est exécuté sur Windows10 powerhsell, donne l'erreur: You must 'source' this script: PS> . .\ENV\Scripts\activate
Comment puis-je réparer ça? (veuillez noter que j'ai lu et fait tout ce qui a été mentionné dans les autres questions du forum ainsi que le manuel de virtualenv concernant Windows et PowerShell.)
J'ai défini la stratégie d'exécution sur RemoteSigned (comme recommandé dans d'autres forums):
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Lorsque je veux activer virtualenv, j'exécute .\ENV\Scripts\activate
Le problème vient des lignes 3 à 6 du script activate.ps1 qui est généré automatiquement par virtualenv lorsque vous créez un nouvel environnement virtuel:
if (@($null,"Internal") -notcontains $myinvocation.commandorigin) {
Write-Host -Foreground red "You must 'source' this script: PS> . $($myinvocation.invocationname)"
exit 33
}
Il paraît que $myinvocation.commandorigin
est défini sur Runspace au lieu de Interne
Comment puis-je réparer ça? Des idées? Merci :))) Notez que je ne veux pas régler manuellement chaque génération automatique activate.ps1
fichier.
Jetons un œil à ce message d'erreur:
You must 'source' this script: PS> . .\ENV\Scripts\activate
Hmmmm ... - PS>
n'est probablement que l'invite, ce qui nous laisse avec ceci:
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
Ça, le solitaire .
devant le chemin, c'est-à-dire opérateur point-source en PowerShell.
Selon la documentation , il:
Exécute un script dans la portée actuelle afin que toutes les fonctions, alias et variables créés par le script soient ajoutés à la portée actuelle.
Je n'ai pas jeté un œil à virtualenv
, mais je suppose qu'il voudra définir un certain nombre de variables et pour s'assurer qu'elles persistent après l'exécution du script, il doit être exécuté dans la portée actuelle.
Voici donc la commande littérale que vous devez exécuter pour le corriger:
. .\ENV\Scripts\activate
Capture d'écran jointe pour référence. Je viens de rencontrer le même problème mais j'ai fait ce qui suit:
Créez un nouvel environnement virtuel;
python -m venv directory
Accédez au répertoire nouvellement créé;
cd directory
Activez l'environnement virtuel.
.\Scripts\activate
Cela a résolu mon problème. J'espère que ça aide ...
J'ai également fait face à ce problème. Pour résoudre ce problème, j'ai créé un nouvel environnement virtuel comme suit:
python -m venv directory-name
Activer:
Scripts>./activate
Et maintenant ça marche bien ...