2013-07-24 10 views
15

Ich bin sehr neu in Django. Ich habe nur eine sehr grundlegende Frage zum Projekt-Layout mit virtualenv. Wenn wir virtualenv erstellen und alle Abhängigkeiten-django usw. installieren, muss ich dann mein Verzeichnis zum virtualenv wechseln und dort ein Projekt erstellen? Oder muss ich mein Projekt außerhalb von virtualenv erstellen. Ich entschuldige mich, wenn es eine sehr grundlegende Frage ist.Django virtualenv Layout

Antwort

1

Dies geht auf das Herz von wie Sie virtualenv: cd in das virtualenv-Verzeichnis, dann aktivieren Sie es (oder umgekehrt - es ist nicht wirklich wichtig). Der übliche Weg, dies unter Linux (oder Cygwin) zu tun, ist die Quelle ./bin/activate/ aus dem virtualenv.

An diesem Punkt, wenn Sie pip oder python verwenden, werden sie lokal zu diesem virtualenv sein. Sie sollten nur Ihre Installationen durchführen, und führen Sie Ihre Sachen nach Aktivierung der virtualenv.

Also, um Ihre Frage zu beantworten: Schalten und aktivieren Sie vor Sie beginnen zu installieren oder alles zu tun. Tue alles innerhalb des virtualenv, damit aktiviert.

+0

ich Ihre Antwort zu schätzen wissen. Ich habe jedoch ein YouTube-Video gesehen, wo sie es zuerst aktivieren und dann das Verzeichnis ändern. Gibt es dafür einen bevorzugten Weg? –

+0

@hansaraj ist es egal, ob Sie zuerst in das Verzeichnis wechseln. Sie müssen aktivieren, bevor Sie etwas tun, und es ist im Allgemeinen bequemer, innerhalb des Verzeichnisses zu sein, um Dinge darin zu tun. Wenn Sie nicht hinein cd, das ist in Ordnung, aber es wird Dinge weniger praktisch. – Marcin

22

Nein, das Verzeichnis, in dem Sie die virtuelle Umgebung erstellen, ist komplett getrennt und Sie würden nicht dorthin gehen und Ihr Django-Projekt erstellen.

Tatsächlich würden Sie normalerweise alle Ihre virtuellen Umgebungen in ein separates Verzeichnis stellen; für mich Ich habe sie in $HOME/work/.envs, so dann meinen Workflow wird (man beachte die ., das das Verzeichnis standardmäßig ausgeblendet macht):

$ virtualenv $HOME/work/.envs/new_env 
$ source $HOME/work/.envs/new_env/bin/activate 
(new_env)$ pip install django 
(new_env)$ cd ~/projects 
(new_env)/projects$ django-admin.py startproject atestproj 

Sie sehen also, tun Sie nicht wirklich etwas mit der virtuellen Umgebung Verzeichnis ; Es wird komplett von virtualenv und pip verwaltet.

Die virtualenvwrapper project erleichtert Ihnen die Verwaltung Ihrer virtuellen Umgebungen an einem zentralen Ort.

+0

Danke für die Antwort. Ich habe eine Frage. Angenommen, ich habe django 1.4 im Stammverzeichnis meines Computers installiert. Dann installiere ich django 1.5 im virtualenv. Dann erstelle ich Django-Projekt außerhalb von virtualenv-say auf dem Desktop. Welche Django-Version wird mein Projekt verwenden? 1.4 oder 1.5? –

+0

Wenn Sie die virtuelle Umgebung nicht aktiviert haben, wird 1 verwendet.4, wenn Sie die virtuelle Umgebung aktiviert, dann spielt es keine Rolle, wo Sie im Dateisystem sind, wird es verwenden 1.5 –

+0

Sie können angeben, welche Version explizit verwendet werden soll (zB: 'pip install django == 1.4') Dies ist das Beste Übung, wie später Sie 'pip freeze' und erstellen Sie eine requirements.txt, die Sie dann' pip installieren 'auf anderen Maschinen, unter Beibehaltung der Versionsabhängigkeiten Ihr Projekt möglicherweise haben. – pygeek

2

Verzeichnisstruktur für die Verwendung mit virtualenv sollte wie folgt lauten:

|-- project_name 
    |-- django 
     |-- project_name 

|-- virtualenv 
    |-- project_name 
     |-- bin 

Das ist natürlich nicht die endgültige Antwort darauf, wie Ihre Struktur Projektverzeichnis sollte außer es verlegt wird jedoch hat für mich gearbeitet, und andere Ich weiß, im Laufe der Jahre.

I "twoscoops des" django Projekt Verzeichnisstruktur und Tutorial für Anfänger empfehlen: https://github.com/twoscoops/django-twoscoops-project

Ich empfehle auch virtualenvwrapper, einfache virtuelle Umgebungen zu machen verwalten: http://virtualenvwrapper.readthedocs.org/en/latest/

+0

yup, das funktioniert. – Legolas

Verwandte Themen