346 Stimmen

Wie kann ich eine Virtualenv unter Linux aktivieren?

Ich habe verschiedene Alternativen gesucht und ausprobiert, ohne Erfolg, und jetzt mehrere Tage damit verbracht; es macht mich verrückt.

Ich laufe mit Red Hat Linux mit Python 2.5.2. Ich habe angefangen, die neueste Virtualenv zu verwenden, aber ich konnte sie nicht aktivieren. Ich fand irgendwo einen Hinweis darauf, dass ich eine frühere Version benötige, also habe ich Virtualenv 1.6.4 verwendet, da dies mit Python 2.6 funktionieren sollte.

Die Installation der virtuellen Umgebung scheint in Ordnung zu sein.

python virtualenv-1.6.4/virtualenv.py virtual

Ausgabe:

New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

Die Umgebung sieht gut aus

cd virtual
dir

Ausgabe:

bin  include  lib

Versucht zu aktivieren

. bin/activate

Ausgabe:

/bin/.: Permission denied.

Ich habe chmod

cd bin
ls -l

Ausgabe:

total 3160
 -rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
 -rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
 -rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
 -rw-r--r-

Das war ein Problem, also habe ich es geändert

ls -l

Ausgabe:

total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

Tring activate wieder

. bin/activate

Ausgabe:

/bin/.: Permission denied.

Immer noch keine Freude...

24voto

Jeffery White Punkte 383

Führen Sie diesen Code aus. Er wird aktiviert, wenn Sie auf einem Windows-Rechner arbeiten:

source venv/Scripts/activate

Enter image description here

Führen Sie diesen Code aus. Er wird aktiviert, wenn Sie auf einem Linux- oder Mac-Rechner arbeiten:

. venv/bin/activate

Enter image description here

22voto

mkdir <YOURPROJECT> : Ein neues Projekt erstellen

cd <YOURPROJECT> : Wechseln Sie das Verzeichnis zu diesem Projekt

virtualenv <NEWVIRTUALENV> : Erstellen einer neuen Virtualenv

source <NEWVIRTUALENV>/bin/activate : Aktivieren der neuen Virtualenv

21voto

kojiro Punkte 70709

Das Problem dabei ist die /bin/. Befehl. Das ist wirklich seltsam, da . immer ein Link zu dem Verzeichnis sein sollte, in dem es sich befindet. (Ehrlich gesagt, wenn . ist ein seltsamer Alias oder eine seltsame Funktion, ich weiß nicht einmal, wie das möglich ist). Es ist auch ein wenig ungewöhnlich, dass Ihre Shell keine . eingebaut für source .

Eine schnelle Lösung wäre, die virtualenv einfach in einer anderen Shell auszuführen. (Ein offensichtlicher zweiter Vorteil ist, dass man statt der deactivate können Sie einfach exit .)

/bin/bash --rcfile bin/activate

Wenn Ihre Shell dies unterstützt, können Sie auch den Nicht-Standard source Befehl, der sollte das Gleiche tun wie . , aber möglicherweise nicht existieren. (Wie gesagt, Sie sollten versuchen herauszufinden, warum Ihre Umgebung seltsam ist, sonst wird sie Ihnen in Zukunft wieder Schmerzen bereiten).

Übrigens, Sie brauchten nicht zu chmod +x diese Dateien. Dateien müssen nur dann ausführbar sein, wenn Sie sie ausführen wollen direkt . In diesem Fall versuchen Sie, sie von . Sie brauchen es also nicht.

16voto

Joy Mukherjee Punkte 171

Anstelle von ./activate verwenden source activate :

See this screenshot

12voto

susan097 Punkte 2870

Unter Windows können Sie dies wie folgt durchführen:

So erstellen Sie die virtuelle Umgebung als: virtualenv envName –python=python.exe (falls nicht, erstellen Sie eine Umgebungsvariable)

So aktivieren Sie die virtuelle Umgebung: \path\to\envName\Scripts\activate

So deaktivieren Sie die virtuelle Umgebung: \path\to\env\Scripts\deactivate

Mit der neuen Python-Version funktioniert es einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X