sous Windows, j'ai installé python 3.7 et je n'ai toujours pas pu activer virtualenv
de Gitbash avec ./Scripts/activate
bien que cela ait fonctionné à partir de Powershell après avoir exécuté Set-ExecutionPolicy Unrestricted
dans Powershell et en modifiant le paramètre sur "Oui pour tous".
Je n'aime pas Powershell et j'aime utiliser Gitbash, donc pour activer virtualenv
dans Gitbash, accédez d'abord à votre dossier de projet, utilisez ls
pour lister le contenu du dossier et assurez-vous que vous voyez "Scripts". Changez de répertoire en "Scripts" en utilisant cd Scripts
, une fois que vous êtes dans le chemin "Scripts", utilisez . activate
pour activer virtualenv
. N'oubliez pas l'espace après le point.
Oui, en gros, c'est ce que fait virtualenv, et c'est ce que le activate
la commande est pour, à partir de la doc ici :
activer le script
Dans un environnement virtuel nouvellement créé, il y aura un script shell bin/activate ou un fichier batch Scripts/activate.bat sous Windows.
Cela changera votre $PATH pour pointer vers le bin/répertoire virtualenv. Contrairement à workingenv, c'est tout ce qu'il fait; c'est une commodité. Mais si vous utilisez le chemin complet comme/path/to/env/bin/python script.py vous n'avez pas besoin d'activer d'abord l'environnement. Vous devez utiliser la source car elle modifie l'environnement sur place. Après avoir activé un environnement, vous pouvez utiliser la fonction de désactivation pour annuler les modifications.
Le script d'activation modifiera également votre invite de shell pour indiquer quel environnement est actuellement actif.
vous devez donc simplement utiliser activate
commande qui fera tout cela pour vous :
> \path\to\env\bin\activate.bat
Normalement virtualenv
crée des environnements dans le répertoire courant. Sauf si vous avez l'intention de créer des environnements virtuels en C:\Windows\system32
pour une raison quelconque, j'utiliserais un répertoire différent pour les environnements.
Vous ne devriez pas avoir à vous soucier des chemins :utilisez le activate
script (en <env>\Scripts
) pour garantir que l'exécutable Python et le chemin sont spécifiques à l'environnement. Une fois que vous avez fait cela, l'invite de commande change pour indiquer l'environnement. Vous pouvez ensuite simplement invoquer easy_install et tout ce que vous installez de cette manière sera installé dans cet environnement. Utilisez deactivate
pour tout remettre tel qu'il était avant l'activation.
Exemple :
c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>
Remarquez comment je n'ai pas eu besoin de spécifier un chemin pour deactivate
- activate
fait cela pour vous, de sorte que lorsqu'il est activé, "Python" exécutera le Python dans le virtualenv, pas votre système Python. (Essayez-le - faites un import sys; sys.prefix
et il devrait imprimer la racine de votre environnement.)
Vous pouvez simplement activer un nouvel environnement pour basculer entre les environnements/projets, mais vous devrez spécifier le chemin complet pour activate
il sait donc quel environnement activer. Vous ne devriez jamais avoir besoin de jouer explicitement avec PATH ou PYTHONPATH.
Si vous utilisez Windows Powershell, vous pouvez profiter d'un wrapper. Sous Linux, le virtualenvwrapper
(le lien pointe vers un port de ceci vers Powershell) rend la vie avec virtualenv
encore plus facile.
Mise à jour : Pas incorrect, exactement, mais peut-être pas tout à fait dans l'esprit de virtualenv
. Vous pouvez adopter une approche différente :par exemple, si vous installez Django et tout ce dont vous avez besoin pour votre site dans votre virtualenv, vous pouvez alors travailler dans votre répertoire de projet (où vous développez votre site) avec le virtualenv activé. Parce qu'il était activé, votre Python trouverait Django et tout ce que vous auriez easy_installed dans l'environnement virtuel :et parce que vous travaillez dans votre répertoire de projet, vos fichiers de projet seraient également visibles pour Python.
Autre mise à jour : Vous devriez pouvoir utiliser pip
, distribute
au lieu de setuptools
, et tout simplement python setup.py install
avec virtualenv
. Assurez-vous simplement d'avoir activé un environnement avant d'y installer quelque chose.