2012-12-09 14 views
7

Ich habe meine Python/virtuellen Umgebungen eine Weile nicht benutzt, aber ich habe auch virtualenvironment-Wrapper installiert.Warum müssen Sie die Umgebungsvariable WORKON_HOME festlegen?

Meine Frage ist, in der doc Seite sagt es, dies zu tun:

export WORKON_HOME=~/Envs 
$ mkdir -p $WORKON_HOME 
$ source /usr/local/bin/virtualenvwrapper.sh 
$ mkvirtualenv env1 

Ich tat dies an meinem Prompt einfach:

source /usr/local/bin/virutalenvwrapper.sh 

Und jetzt kann ich Liste und eine Umgebung auswählen, indem Sie tun:

>workon 

>workon envtest1 

Meine Frage ist, da dies funktioniert für mich, ich bin verwirrt, warum sollte ich eine Umwelt vari Schaffung werden fähigen WORKON_HOME und verweisen Sie auf den Ordner ~/Envs? Was macht das und wie kommt es mir geht es gut ohne es? Ich habe auch diesen/Envs-Ordner nicht (ich weiß, dass das Skript es erstellt).

Referenz: http://virtualenvwrapper.readthedocs.org/en/latest/

Antwort

8

Wenn WORKON_HOME nicht gesetzt ist, wird Ihr Standard-virtualenv Ordner ~/.virtualenvs
(siehe virtualenvwrapper.sh l.118)

Sie auch WORKON_HOME gesetzt werden verwenden, um pip festlegen, welche Ordner zu verwenden (export PIP_VIRTUALENV_BASE=$WORKON_HOME)

Quelle: virtualenvwrapper.readthedocs.org : Tying to pip’s virtualenv support

+1

'PIP_VIRTUALENV_BASE' ist veraltet: https://bitbucket.org/dhellmann/virtualenvwrapper/issue/225/pip_virtualenv_base-and –

+0

Mein Projektordner ist' ~/Projects'. Ich bin über diese Antwort gestolpert, weil ich das gleiche Problem hatte ** und ** ich konnte es nicht zwingen zu erkennen, als ich die '$ WORKON_HOME' Variable gesetzt hatte. Endlich habe ich einfach ein 'ln -s ~/Projects ~/.virtualenvs' gemacht. Problem gelöst. Danke für die Information. –

+1

Damit $ WORKON_HOME in der Tat optional ist, wenn Sie mit dem Projekt ~ Environments in den Standard ~/.virtualenvs zufrieden sind und dann die nächste Frage ist, gibt es irgendeine Motivation, einen anderen als den Standardordner zu verwenden? – RayLuo

0

Ich bin verwirrt, warum ich eine Umgebungsvariable WORKON_HOME erstellen und auf den ~/Envs-Ordner verweisen sollte?

Es ist optional. Du bist verwirrt (wie ich), weil die Dokumentation verwirrend ist.

Was macht das und wie kommt meine funktioniert gut ohne es?

Er teilt virtualenvwrapper mit, welcher Ordner nach Python-Umgebungen suchen soll. Der Befehl workon durchsucht den Pfad WORKON_HOME, wenn er definiert ist, oder ~/.virtualenvs, wenn nicht, weshalb er standardmäßig funktioniert.

Ein Anwendungsfall zum Definieren eines anderen Verzeichnisses WORKON_HOME wäre, wenn Sie verschiedene Umgebungen haben, die Sie für virtualenvwrapper verfügbar haben möchten. Wenn Sie beispielsweise virtuelle env-Sicherungen in einem anderen Ordner speichern oder mehrere Benutzer haben, die ihre eigenen Umgebungen verwalten möchten.

Verwandte Themen