2016-07-22 24 views
4

Wenn ich einen Projektordner verschiebe, muss ich den Projektpfad in der .project-Datei manuell aktualisieren, damit der workon-Befehl funktioniert. Ist es möglich, den Pfad automatisch zu aktualisieren?virtualenvwrapper: Wie Projektpfad zu aktualisieren?

+0

können Sie einen neuen virtualenv erstellen und kopieren Sie Ihren Code –

Antwort

8

Gemäß der Dokumentation können Sie setvirtualenvproject verwenden. Dadurch werden Sie automatisch in den Projektordner verschieben, wenn Sie den workon Befehl verwenden:

bono~$: setvirtualenvproject ~/.virtualenvs/your-virtual-env/ ~/path/to/your/project 

Oder, wie beruic erwähnt, ist es einfacher, die Umwelt zu aktivieren und zunächst auf die gewünschte Arbeitsverzeichnis bewegen. Bitte beachten Sie, dass diese immer auf meinem System nicht funktionieren, aber es ist viel einfacher, wenn es für Dich funktioniert:

$ workon your-virtual-env 
$ cd ~/path/to/your/project 
$ setvirtualenvproject 

es praktisch sein, könnte auch für die virtualenv bei der Erstellung den Projektpfad angeben, in der Zukunft. Sie müssen das Projekt mit dem Flag -a angeben.

Die Option -a kann verwendet werden, um ein vorhandenes Projektverzeichnis mit der neuen Umgebung zu verknüpfen.

Sie können es so etwas wie folgt verwenden:

bono~$: cd ~/your/project 
bono~$: mkvirtualenv my-project -a $(pwd) 

Sie das nächste Mal verwenden workon Sie automatisch in Ihrem Projektverzeichnis verschoben.

Alternative


Wenn Sie automatisch möchten Verzeichnisänderungen erkennen und stellen Sie die richtige virtualenvwrapper dann und dort können Sie einen Blick auf this post haben. Es ist ein bisschen zu expansiv, um hier ins Detail zu gehen, aber ich denke, du findest das, wonach du suchst, wenn du das meinst.

4

Sie können einfach Ihre virtuelle Umgebung aktivieren, gehen Sie zu dem Ordner, den Sie als Projektordner möchten und rufen setvirtualenvproject:

$ workon [your_project] 
$ cd [desired_project_folder] 
$ setvirtualenvproject 

Danach wird der aktuelle Ordner wird als Projektordner im aktuellen virtualenv eingestellt werden.