Mein Problem war, dass ich vor kurzem umgezogen bin mein Projekt mit virtualenv an einen anderen Ort, wegen diesem activate Skript war falsch VIRTUAL_ENV Pfad.
$ cat path_to_your_env/bin/activate
... # some declarations
VIRTUAL_ENV="/path_to_your_env/bin/python" # <-- THIS LINE
export VIRTUAL_ENV
... # some declarations
Um dies zu beheben, aktualisieren Sie einfach VIRTUAL_ENV in activate Skript.
Außerdem müssen Sie möglicherweise die erste Zeile Ihres bin/pip korrigieren um auf einen echten Python-Pfad zu verlinken.
Wenn Sie das Programm nicht bekommen, dass which sagt, dass Sie bekommen sollten, müssen Sie in der Kette weiter oben suchen als der Plattform-Executor. Shells haben normalerweise eine Möglichkeit, Befehle zu aliasieren, und bei den meisten Unixy-Shells können Sie einfach alias eingeben um zu sehen, welche Befehle neu zugeordnet wurden. Dann müssen Sie nur noch zu den Konfigurationsdateien Ihrer Shell gehen und den Alias entfernen.
Manchmal alias python um herauszufinden, welche Python sie verwenden sollten. Aber es gibt meist andere, bessere Wege. Auf meinem Linux-Rechner zum Beispiel python3 befindet sich im Pfad, ist aber ein Symlink zu dem echten Python, den ich verwende.
[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] ~ $
Das ist nett, weil Nicht-Shell-Programme, auf denen Python läuft, das gleiche bekommen wie ich und virtuelle Umgebungen natürlich funktionieren.
Wie tdelaney in den Kommentaren vorgeschlagen hat, habe ich alias ausgeführt und stellte fest, dass ich zuvor python als Alias verwendet hatte bis /usr/bin/python3.5 in meinem .bashrc .
Ich habe diesen Alias aus meinem .bashrc entfernt , lief unalias python , und source ~/.bashrc und das Problem wurde gelöst.
Auf Cygwin habe ich immer noch ein Problem, selbst nachdem ich einen Symlink zu Punkt /usr/bin/python erstellt habe bis F:\Python27\python.exe . Hier nach source env/Scripts/activate , which python ist immer noch /usr/bin/python .
Nach langer Zeit habe ich eine Lösung gefunden. Anstatt virtualenv env zu verwenden , müssen Sie virtualenv -p F:\Python27\python.exe env verwenden obwohl Sie einen Symlink erstellt haben.