Mi problema fue que recientemente me mudé mi proyecto con virtualenv a otra ubicación, debido a este activate
script tenía mal VIRTUAL_ENV
camino.
$ cat path_to_your_env/bin/activate
... # some declarations
VIRTUAL_ENV="/path_to_your_env/bin/python" # <-- THIS LINE
export VIRTUAL_ENV
... # some declarations
Para arreglar esto, simplemente actualice VIRTUAL_ENV
en activate
guión.
También es posible que necesite arreglar la primera línea de su bin/pip
para vincular a la ruta real de python.
Si no obtiene el programa que which
dice que debe obtener, debe mirar más arriba en la cadena que el ejecutor de la plataforma. Los shells suelen tener una forma de alias de los comandos y en la mayoría de los shells de Unixy solo puede ingresar alias
para ver qué comandos se han reasignado. Entonces solo es cuestión de ir a los archivos de configuración de su shell y eliminar el alias.
A veces, las personas se alias python
para tratar de resolver qué python deberían usar. Pero por lo general hay otras maneras mejores. En mi máquina Linux, por ejemplo, python3
está en la ruta pero es un enlace simbólico al python real que estoy usando.
[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] ~ $
Esto es bueno porque los programas que no son de shell que ejecutan python obtienen el mismo que yo y los entornos virtuales funcionan de forma natural.
Como sugirió tdelaney en los comentarios, ejecuté alias
y descubrí que anteriormente había creado un alias python
a /usr/bin/python3.5
en mi .bashrc
.
Eliminé ese alias de mi .bashrc
, ejecutó unalias python
y source ~/.bashrc
y el problema fue resuelto.
En Cygwin, todavía tengo un problema incluso después de crear un enlace simbólico al punto /usr/bin/python
a F:\Python27\python.exe
. Aquí, después de source env/Scripts/activate
, which python
sigue siendo /usr/bin/python
.
Después de mucho tiempo, encontré una solución. En lugar de usar virtualenv env
, tienes que usar virtualenv -p F:\Python27\python.exe env
aunque haya creado un enlace simbólico.