Il mio problema era che mi sono trasferito di recente il mio progetto con virtualenv in un'altra posizione, a causa di questo activate
script era sbagliato VIRTUAL_ENV
percorso.
$ cat path_to_your_env/bin/activate
... # some declarations
VIRTUAL_ENV="/path_to_your_env/bin/python" # <-- THIS LINE
export VIRTUAL_ENV
... # some declarations
Per risolvere questo problema, aggiorna VIRTUAL_ENV
in activate
script.
Inoltre potresti aver bisogno di correggere la prima riga del tuo bin/pip
per collegarsi al vero percorso di Python.
Se non ottieni il programma che which
dice che dovresti ottenere, devi guardare più in alto nella catena rispetto all'esecutore della piattaforma. Le shell in genere hanno un modo per creare alias dei comandi e sulla maggior parte delle shell unixy puoi semplicemente inserire alias
per vedere quali comandi sono stati rimappati. Quindi è solo questione di andare ai file di configurazione per la tua shell e rimuovere l'alias.
A volte le persone si chiamano python
per cercare di capire quale Python dovrebbero usare. Ma di solito ci sono altri modi migliori. Sulla mia macchina Linux, ad esempio, python3
è nel percorso ma è un collegamento simbolico al vero pitone che sto 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] ~ $
Questo è bello perché i programmi non shell che eseguono Python ottengono lo stesso che faccio io e gli ambienti virtuali funzionano in modo naturale.
Come suggerito da tdelaney nei commenti, ho eseguito alias
e ho scoperto che in precedenza avevo aliasato python
a /usr/bin/python3.5
nel mio .bashrc
.
Ho rimosso quell'alias dal mio .bashrc
, ha eseguito unalias python
e source ~/.bashrc
e il problema è stato risolto.
Su Cygwin, ho ancora un problema anche dopo aver creato il collegamento simbolico al punto /usr/bin/python
a F:\Python27\python.exe
. Qui, dopo source env/Scripts/activate
, which python
è ancora /usr/bin/python
.
Dopo tanto tempo, ho trovato una soluzione. Invece di usare virtualenv env
, devi usare virtualenv -p F:\Python27\python.exe env
anche se hai creato un collegamento simbolico.