Istnieją dwa całkowicie przeciwstawne obozy: jeden na korzyść pakietów dostarczanych przez system i jeden na rzecz oddzielnej instalacji. Osobiście jestem w obozie "pakietów systemowych". Podam argumenty z każdej strony poniżej.
Pro pakiety systemowe: system packager już dba o zależności i zgodność z ogólnymi zasadami systemu (takimi jak układ pliku). Pakiety systemowe dostarczają aktualizacje zabezpieczeń, jednocześnie dbając o to, aby nie łamały kompatybilności - tak więc czasami zawierają one poprawki zabezpieczeń, których autorzy nie uwzględnili w backsporcie. Pakiety systemowe są "bezpieczne". uaktualnienia systemu: po aktualizacji systemu prawdopodobnie masz również nową wersję Pythona, ale wszystkie twoje moduły Pythona nadal istnieją, jeśli pochodzą z pakera systemowego. To wszystko jest osobiste doświadczenie z Debianem.
Pakiety systemu Con: nie wszystkie oprogramowanie może być dostarczone jako pakiet systemowy lub nie w najnowszej wersji; instalowanie różnych rzeczy w systemie może spowodować uszkodzenie pakietów systemowych. Aktualizacje mogą przerwać Twoją aplikację.
Pro osobna instalacja: niektóre osoby (w szczególności programiści aplikacji internetowych) twierdzą, że absolutnie potrzebujesz powtarzalnej konfiguracji, przy użyciu tylko tych pakietów, które zostały całkowicie odłączone od systemu Python. To wykracza poza samodzielne instalowanie w porównaniu do pakietów systemowych, ponieważ nawet w przypadku samodzielnej instalacji wciąż możesz modyfikować pythona systemowego; z oddzielną instalacją, nie będziesz. Jak omawia Lennart, istnieją teraz dedykowane łańcuchy narzędzi wspierające tę konfigurację. Ludzie twierdzą, że tylko to podejście może zagwarantować powtarzalne wyniki.
Skonfiguruj osobną instalację: musisz samodzielnie rozwiązać problem i upewnić się, że wszyscy użytkownicy korzystają z oddzielnej instalacji. W przypadku aplikacji internetowych ta ostatnia jest zwykle łatwa do osiągnięcia.
[pyenv] (https://github.com/yyuu/pyenv#readme) to wspaniałe narzędzie do zarządzania wieloma wersjami Pythona i [virtualenvs] (https://github.com/yyuu/pyenv-virtualenv#readme). –