Mon problème était que j'ai récemment déménagé mon projet avec virtualenv vers un autre emplacement, à cause de ce activate
le script avait erroné VIRTUAL_ENV
chemin.
$ cat path_to_your_env/bin/activate
... # some declarations
VIRTUAL_ENV="/path_to_your_env/bin/python" # <-- THIS LINE
export VIRTUAL_ENV
... # some declarations
Pour résoudre ce problème, il suffit de mettre à jour VIRTUAL_ENV
en activate
script.
Aussi, vous devrez peut-être corriger la première ligne de votre bin/pip
pour lier au vrai chemin python.
Si vous ne recevez pas le programme qui which
dit que vous devriez obtenir, vous devez regarder plus haut dans la chaîne que l'exécuteur de la plate-forme. Les shells ont généralement un moyen d'aliaser les commandes et sur la plupart des shells unixy, vous pouvez simplement entrer alias
pour voir quelles commandes ont été remappées. Ensuite, il suffit d'accéder aux fichiers de configuration de votre shell et de supprimer l'alias.
Parfois, les gens s'appellent python
pour essayer de déterminer quel python ils devraient utiliser. Mais il existe généralement d'autres moyens plus efficaces. Sur ma machine Linux, par exemple, python3
est dans le chemin mais est un lien symbolique vers le vrai python que j'utilise.
[email protected] ~ $ which python3
/usr/bin/python3
[email protected] ~ $ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Feb 17 2016 /usr/bin/python3 -> python3.4
[email protected] ~ $
C'est bien car les programmes non-shell exécutant python obtiennent le même que moi et les environnements virtuels fonctionnent naturellement.
Comme tdelaney l'a suggéré dans les commentaires, j'ai exécuté alias
et j'ai trouvé que j'avais précédemment alias python
à /usr/bin/python3.5
dans mon .bashrc
.
J'ai supprimé cet alias de mon .bashrc
, a exécuté unalias python
, et source ~/.bashrc
et le problème a été résolu.
Sur Cygwin, j'ai toujours un problème même après avoir créé un lien symbolique vers le point /usr/bin/python
à F:\Python27\python.exe
. Ici, après source env/Scripts/activate
, which python
est toujours /usr/bin/python
.
Après un long moment, j'ai trouvé une solution. Au lieu d'utiliser virtualenv env
, vous devez utiliser virtualenv -p F:\Python27\python.exe env
même si vous avez créé un lien symbolique.