2012-08-22 12 views
10

Jedno lubię projektów Rails jest to, że podczas wdrażania do zdalnego serwera, czy wszystko jest poprawnie skonfigurowane można po prostu zrobić:Czy Django ma odpowiednik "instalacji pakietu" Rails?

$: bundle install 

a system zainstalować różne zależności (ruby klejnoty) potrzebna do uruchomić projekt.

Czy jest coś podobnego do Python/Django?

Odpowiedz

11

można zamrażać wymagania. Generuje to listę wszystkich modułów Pythona potrzebnych w projekcie. Wierzę, że bundle jest podobny w koncepcji.

Na przykład:

virtualenv --no-site-packages myproject_env # create a blank Python virtual environment 
source myproject_env/bin/activate # activate it 
(myproject_env)$ pip install django # install django into the virtual environment 
(myproject_env)$ pip install other_package # etc. 
... 
(myproject_env)$ pip freeze > requirements.txt 

Ostatnia linia generuje plik tekstowy będą wszystkie pakiety, które zostały zainstalowane w niestandardowym otoczeniu. Można używać ten plik, aby zainstalować te same wymagania na innych serwerach:

pip install -r requirements.txt 

Oczywiście nie trzeba używać pip, można utworzyć plik wymogów przez strony; nie ma żadnych specjalnych wymagań dotyczących składni. Tylko pakiet i (ewentualnie) identyfikator wersji w każdym wierszu. Oto przykład typowego projektu django z dodatkowymi pakietami:

Django==1.4 
South==0.7.4 
Werkzeug==0.8.3 
amqplib==1.0.2 
anyjson==0.3.1 
celery==2.5.1 
django-celery==2.5.1 
django-debug-toolbar==0.9.4 
django-extensions==0.8 
django-guardian==1.0.4 
django-picklefield==0.2.0 
kombu==2.1.4 
psycopg2==2.4.5 
python-dateutil==2.1 
six==1.1.0 
wsgiref==0.1.2 
xlwt==0.7.3 
+0

działa ładnie, dzięki. – nemesisdesign

3

Najbliższy to prawdopodobnie virtualenv, pip i requirements file. Dzięki tym trzem składnikom łatwo jest napisać proste skrypty bootstrap.

Bardziej wymagający i złożony jest buildout. Ale chciałbym go użyć tylko wtedy, gdy virtualenv i pip nie są wystarczające.

Jeśli rozszerzysz to podejście o fabric i opcjonalnie cuisine, masz już zaimplementowane wdrożenie projektu. Sprawdź te linki, aby uzyskać więcej informacji:

Powiązane problemy