2013-07-24 16 views
15

Jestem bardzo nowy w django. Mam tylko bardzo podstawowe pytanie dotyczące układu projektu za pomocą virtualenv. Kiedy tworzymy virtualenv i instalujemy wszystkie zależności - django itp., Czy muszę przełączyć mój katalog na virtualenv, a następnie utworzyć tam projekt? Czy muszę utworzyć mój projekt poza virtualenv. Przepraszam, jeśli to bardzo podstawowe pytanie.Django virtualenv layout

Odpowiedz

1

To prowadzi do sedna tego, w jaki sposób korzystasz z virtualenv: cd do katalogu virtualenv, a następnie aktywujesz go (lub odwrotnie - tak naprawdę nie ma to znaczenia). Najczęstszym sposobem zrobienia tego na Linuksie (lub cygwin) jest źródło ./bin/activate/ z poziomu virtualenv.

W tym momencie, jeśli użyjesz pip lub python, będą one lokalne dla tego virtualenv. Powinieneś tylko wykonywać swoje instalacje i uruchamiać swoje rzeczy po aktywacji virtualenv.

Aby odpowiedzieć na twoje pytanie: przełącz i aktywuj przed, zaczniesz instalować lub robić cokolwiek. Rób wszystko wewnątrz virtualenv, z nim aktywowane.

+0

cenię swoją odpowiedź. Jednak widziałem wideo z youtube, gdzie najpierw go aktywowali, a następnie zmień katalog. Czy jest to preferowany sposób? –

+0

@hansaraj nie ma znaczenia, czy najpierw przełączysz się do katalogu. Musisz aktywować zanim zrobisz cokolwiek, a wygodniej jest być wewnątrz katalogu, aby robić w nim rzeczy. Jeśli nie chcesz się do niego przyłączyć, jest to w porządku, ale sprawi, że będzie to mniej wygodne. – Marcin

22

Nie, katalog, w którym tworzone jest środowisko wirtualne, jest całkowicie oddzielny i nie jest tam, gdzie można by utworzyć projekt django.

W rzeczywistości zazwyczaj wszystkie środowiska wirtualne zostały umieszczone w oddzielnym katalogu; dla mnie umieścić je w $HOME/work/.envs (uwaga ., to sprawia, że ​​katalog jest domyślnie ukryty), a więc wtedy mój workflow postać:

$ 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 

Więc widać, w rzeczywistości nie robić nic z katalogu wirtualnego środowiska ; jest całkowicie zarządzany przez virtualenv i pip.

Dzięki temu łatwiej jest zarządzać wirtualnymi środowiskami w centralnej lokalizacji.

+0

Dzięki za odpowiedź. Mam pytanie. Załóżmy, że mam zainstalowany django 1.4 w katalogu głównym mojego komputera. Następnie instaluję django 1.5 w virtualenv. Następnie tworzę projekt django poza virtualenv- powiedzmy na pulpicie. Którą wersję Django wykorzystam do mojego projektu? 1,4 lub 1,5? –

+0

Jeśli nie aktywowałeś środowiska wirtualnego, użyjesz 1.4, jeśli aktywowałeś środowisko wirtualne, to nie ma znaczenia, gdzie jesteś w systemie plików, użyjesz 1.5 –

+0

Możesz określić, której wersji użyć jawnie (np .: 'pip install django == 1.4') To jest najlepsze ćwicz, jak później możesz "pip freeze" i stworzyć plik requirements.txt, który możesz następnie "zainstalować pip" na innych komputerach, zachowując zależność wersji od twojego projektu. – pygeek

2

Struktura katalogów do użytku z virtualenv powinna być następująca:

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

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

To oczywiście nie jest ostateczna odpowiedź w jaki sposób struktura katalogów projekt powinien być rozplanowany, to jednak pracował dla mnie, a inni Wiem, z biegiem lat.

Gorąco polecam strukturę katalogów "twoscoops w" Django i samouczek dla początkujących: https://github.com/twoscoops/django-twoscoops-project

Polecam również virtualenvwrapper, aby środowisk wirtualnych łatwiejsze zarządzanie: http://virtualenvwrapper.readthedocs.org/en/latest/

+0

tak, to działa. – Legolas