Dariusz Paluch

Dariusz Paluch Jeżeli Python to
zamiennik BASIC'a.
to Optimus Prime
jest...

Temat: Multiplatformowosc projektow django/python

Mam pytanie: W jaki sposób radzicie sobie z niekompatybilnościami windows vs mac i linux ?
Chodzi generalnie o przystosowanie projektu do dzialania (dla designerow) pod Windows.
Niestety srodowisko perfekcyjnie dzialajace pod linux/mac sypie sie totalnie pod Windows, a niestety frontendowcy taki srodowiskiem pracy dysponuja.

pip + virtualenv + django + mysql + south, celery itd

konto usunięte

Temat: Multiplatformowosc projektow django/python

Co to znaczy, że się sypie?

konto usunięte

Temat: Multiplatformowosc projektow django/python

99% pakietów jest dostępna na platformę Windows, a instalacja w przypadku niektórych jest nawet prostsza (binarki), więc nie bardzo wiem w czym problem.

Jeśli chcesz zautomatyzować proces stwórz jakiś plik init.py, a w nim wykorzystaj min. setuptools, np:


from setuptools import setup

setup(packages=None, install_requires=[
'django==1.4.2',
'south',
'...'
])

konto usunięte

Temat: Multiplatformowosc projektow django/python

Jeśli faktycznie istnieje problem niekompatybilności z uwagi na zewnętrzne moduły to polecam maszynę wirtualną z systemem możliwie zbliżonym do środowiska produkcyjnego.

W pracy używamy Vagranta i polecam każdemu. W skrócie idea przedstawia się następująco - każdy członek zespoły ma dostęp do odpowiednio przygotowanego obrazu (najlepiej z tym samym systemem który użyty jest na produkcji), konfiguracji Vagranta i "provisioning skryptów". I jedną komendą zestawia środowisko robocze na dowolnym host systemie tak, że kod źródłowy projektu współdzielony jest między systemem gospodarza a maszyną wirtualną (dzięki czemu developer może wciąż używać swoich ulubionych narzędzi w procesie developmentu). Serwer chodzi na maszynie wirtualnej, która uruchamia system operacyjny "gościa" w trybie headless mode (niskie zużycie zasobów host systemu). Porty odpowiednich usług są przekierowane z systemu gościa na gospodarza tak, że np. możliwy jest dostęp do web servera (chodzącym w systemie operacyjnym gościa, w maszynie wirtualnej) z systemu gopsodarza (wszystko to ustawia się w konfiguracji Vagranta). Kolejną zaletą jest to, że można współdzielić wspomniane "provisioning skrypty" pomiędzy środowiskiem developerskim a produkcyjnym (więc można łatwo je przetestować zanim zostaną użyte w produkcji).

Powyższe rozwiązanie jest szczególnie przydatne w przypadku projektów posiadających dużą ilość zależności wymagających specyficznej instalacji/konfiguracji, gdy w projekcie uczestniczy duża liczba developerów używających różnych systemów operacyjnych na swoich stacjach roboczych. Odpada wiki ze szczegółowym opisem instalacji i czasochłonny support (zwłaszcza gdy do teamu dochodzi nowy developer).Tomasz Elendt edytował(a) ten post dnia 24.11.12 o godzinie 16:00
Dariusz Paluch

Dariusz Paluch Jeżeli Python to
zamiennik BASIC'a.
to Optimus Prime
jest...

Temat: Multiplatformowosc projektow django/python

Vagranta to chyba rozwiązanie problemów. Myślałem przed napisaniem wątku o stworzeniu czegoś podobnynego do tego, a podsunąłeś mi Tomku gotowe rozwiązanie.

Następna dyskusja:

Poszukiwany programista Pyt...




Wyślij zaproszenie do