Narzędzie (lub kombinacja narzędzi) do powtarzalnych środowisk w Pythonie

Kiedyś byłem programistą Javy i używaliśmy narzędzi takich jak ant lub maven do zarządzania naszymi środowiskami programistycznymi/testowymi/UAT w ustandaryzowany sposób. Pozwoliło nam to obsługiwać zależności bibliotek, ustawiać zmienne systemu operacyjnego, kompilować, wdrażać, uruchamiać testy jednostkowe i wszystkie wymagane zadania. Ponadto wygenerowane Skrypty gwarantowały, że wszystkie środowiska były prawie jednakowo skonfigurowane, a wszystkie zadania były wykonywane w ten sam sposób przez wszystkich członków zespołu.

Zaczynam pracę w Pythonie teraz i proszę o radę, w jakich narzędziach powinienem użyć, aby osiągnąć to samo, co opisano w Javie.

Author: Sam, 2009-02-13

7 answers

  1. Virtualenv , aby stworzyć zamknięte środowisko wirtualne(uniemożliwić różnym wersjom Pythona lub pakietów Pythona stąpanie po sobie). Jest coraz większy szum od ludzi przenoszących się do tego narzędzia. Autor jest taki sam jak starszy working-env.py wspomniany przez Aarona.

  2. Pip do instalacji pakietów wewnątrz virtualenv. Tradycyjny jest easy_install, Jak odpowiedział S. Lott, ale pip działa lepiej z virtualenv. easy_install wciąż ma funkcje, których nie można znaleźć w pip.

  3. Scons jako narzędzie do budowania, chociaż nie będziesz tego potrzebował, jeśli pozostaniesz czysto Pythonem.

  4. Tkanina wklej, lub układarka do rozmieszczenia.

  5. Buildbot do ciągłej integracji.

  6. Bazaar, mercurial lub git do kontroli wersji.

  7. Nos jako rozszerzenie dla testów jednostkowych.

  8. PyFit dla FIT testuję.

 18
Author: Van Gale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 13:24:24

Pracuję również z Javą i Pythonem. Dla rozwoju Pythona odpowiednikiem Mavena jest setuptools (http://peak.telecommunity.com/DevCenter/setuptools ). do tworzenia aplikacji internetowych używam tego w połączeniu z paster ( http://pythonpaste.org/) dla procesu wdrażania

 3
Author: jor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 12:29:30

Inne niż easy_install ?

Dla naszych serwerów Linuksowych używamy easy_install i yum.

Dla naszych laptopów dla Windows, używamy easy_install i kilku MSI w niektórych projektach.

Większość bibliotek Pythona, których używamy, jest tylko źródłowa, więc możemy używać tej samej dystrybucji we wszystkich polach. Gdybyśmy mogli mieć wspólne urządzenie sieciowe, umieścilibyśmy je wszystkie tam. Niestety, nasza infrastruktura jest rozproszona, więc musimy się przenieść .Pliki TAR wokół lub powtórz instaluje się w celu odbudowy środowiska.

W kilku przypadkach (np. PIL), musimy przekompilować i sprawdzić numery wersji.

 2
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 12:28:45

Będziesz chciał easy_setup , aby zdobyć jajka (mniej więcej to, co Maven nazywa artefaktem).

Aby skonfigurować swoje środowisko, spójrz na working-env.py

Python nie jest skompilowany, ale możesz umieścić wszystkie pliki dla projektu w jajku. Można to zrobić za pomocą setuptools

Dla CI, sprawdź ta odpowiedź .

 2
Author: Aaron Digulla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:01:24

Nie wspominajmy również Paver, który został stworzony przez Kevina Dangoora z TurboGears fame. Projekt jest nadal w wersji alfa, ale wydaje się bardzo obiecujący. Fragment strony projektu:

Paver to oparte na Pythonie narzędzie do tworzenia/dystrybucji / wdrażania skryptów wzdłuż linii Make lub Rake. To, co czyni Paver wyjątkowym, to jego integracja z powszechnie używanymi bibliotekami Pythona. Typowe zadania, które wcześniej były łatwe, pozostają łatwe. Ważniejsze, radzenie sobie z konkretnymi potrzebami i wymaganiami aplikacji jest teraz znacznie łatwiejsze.

 2
Author: zweiterlinde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 18:00:31

Robię dokładnie to z kombinacją setuptools i Hudson. Wiem, że Hudson to aplikacja java, ale może działać w Pythonie.

 0
Author: Salim Fadhley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 13:06:36

Możesz sprawdzić nasze Devenv. Pozwala na standaryzację środowisk kompilacji dla rozwoju, QA i UAT. Jest za darmo jak w "darmowe piwo".

HTH

 0
Author: Slava Imeshev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-14 00:53:17