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.