5

Pracuję z przyjacielem w aplikacji internetowej chcielibyśmy dystrybuować i pracujemy w Django.Wdrażanie Django aplikacji OpenSource z zależnościami

Chciałbym się upewnić, że wdrożenie jest możliwie proste dla potencjalnych użytkowników. Wygląda na to, że Django dużo korzysta z zainstalowanych bibliotek i chciałbym, żeby ludzie po prostu musieli pobrać naszą najnowszą wersję, rozpakować, edytować plik konfiguracyjny lub dwa i zacząć, np. Wordpress, itp.

Jestem przyzwyczajony do rozmieszczenie stylów ruby ​​na szynach, w których tłoczysz klejnoty i wtyczki do katalogu dostawców i to wszystko, na czym możesz polegać.

Jaka jest analogiczna django sposobem wdrożyć aplikację ze wszystkimi zależnościami dołączonego? Wolałbym nie używać czegoś takiego jak easy_install do ściągania zależności po instalacji.

This Python Stack Overflow Answer Wygląda na to, że jest na dobrej drodze, ale jest jakiś szczególny sposób Django iść? Czy to rozwiązany problem?

Odpowiedz

1

Jest to jeden z największych ograniczeń z Django „wielokrotnego użytku aplikacji”. W podtytule "Ten tydzień w Django" tydzień lub dwa temu rozmawialiśmy o tym problemie z dokładnym. Wygląda na to, że konsensus i zgadzam się, że tak naprawdę nie ma rozwiązania.

Jeśli spojrzysz na Pynax, który jest prawdopodobnie największym rozproszonym projektem Django, zobaczysz, że pakietują one aplikacje z całym systemem.

Sam Python ma kilka dystrybucji pakietów. Wiem, że ActiveState pracuje nad uruchomieniem kolejnego. Ale nawet wtedy nie wszystkie aplikacje django są spakowane. Wiele znajduje się tylko w bitbucket, github lub źródle Google. I nawet wtedy, aby otrzymać kopię wszystkich tych, trzeba mieć zainstalowany mercurial, git i svn. (Bla @ to)

zasadzie masz 2 opcje tutaj:

  1. Dołącz kopię każdego uzależnienia ze źródła
  2. Dołącz dokumentację, w jaki sposób użytkownicy instalują dana zależnością

Wiem, że to smutna lista. Zasysa w rzeczywistości, szczególnie po użyciu systemu gem rubinowy, ale w tej chwili nie jestem pewien, co lepiej znaleźć.

Jeśli jest to interesujące, napisałem krótki wpis na blogu o utrzymywaniu zależności w folderze projektu (lub w SVN), a następnie dodając tę ​​ścieżkę do ścieżki wyszukiwania Pythona na początku django. (Managing Django Dependencies via SVN) Wtrąca się do intellisense Komodo Edit, ale ułatwia to w inny sposób.

+0

Myślę, że ta strategia sprzedaży pakietowej może być najbliższa temu, co robią ludzie z rubinu na torach. – MattK

13

Najprościej jest tutaj wykorzystanie pip. pip to narzędzie do instalowania pakietów Pythona. pozwala tworzyć pliki wymagań, które zawierają zależności dla projektu. pip jest dość powszechny i ​​szeroko stosowany przez społeczność Django i zdecydowanie polecam go używać.

Jak wspomniał T. Stone Pinax, projekt oparty na Django ma wiele zależności i całkiem skutecznie korzysta z plików wymagań pip.

+0

również, jeśli jesteś nowicjuszem virtualenv/pip, napisałem tutaj intro: http: // bit.ly/IFx0I – richleland

+0

To naprawdę powinna być poprawna odpowiedź na to pytanie! – vdboor

Powiązane problemy