Naprawdę nie ma jednej „odpowiedzi” na to pytanie, ale z pewnością są pewne przydatne koncepcje, które mogą pomóc w podjęciu decyzji.
Pierwsze pytanie, na które należy odpowiedzieć w swoim przypadku użycia, brzmi: „Czy chcę używać systemu Python?” Jeśli chcesz używać Pythona dystrybuowanego z systemem operacyjnym, użycie metody apt-get install może być w porządku. Jednak w zależności od metody dystrybucji systemu operacyjnego nadal musisz zadać kilka dodatkowych pytań, na przykład „Czy chcę zainstalować wiele wersji tego pakietu?” Jeśli odpowiedź brzmi tak, to prawdopodobnie nie jest dobrym pomysłem używanie czegoś takiego jak apt. Dpkg prawie po prostu rozpakuje archiwum w katalogu głównym systemu plików, więc opiekun pakietu musi upewnić się, że pakiet zostanie bezpiecznie zainstalowany przy bardzo niewielkich założeniach. W przypadku większości pakietów Debiana założyłbym (ktoś może śmiało mnie tutaj poprawić), że po prostu rozpakowują i dostarczają pakiet najwyższego poziomu.
Na przykład załóżmy, że pakiet to „virtualenv”, a otrzymasz /usr/lib/python2.x/site-packages/virtualenv
. Jeśli zainstalujesz go za pomocą easy_install
, otrzymasz coś takiego, /usr/lib/python2.x/site-packages/virtualenv.egg-link
co może wskazywać na /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
katalog lub spakowane jajko. Pip robi coś podobnego, chociaż nie używa jajek, a zamiast tego umieści pakiet najwyższego poziomu bezpośrednio w lib
katalogu.
Mogę być na ścieżce, ale chodzi o to, że każda metoda bierze pod uwagę inne potrzeby. Dlatego narzędzia takie jak virtualenv są pomocne, ponieważ umożliwiają piaskownicę bibliotek Pythona w taki sposób, że można uzyskać dowolną kombinację bibliotek i wersji, której potrzebujesz.
Setuptools umożliwia również instalowanie pakietów jako multiwersja, co oznacza, że nie jest dule_name.egg-link
tworzony pojedynczy mo . Aby zaimportować te pakiety, musisz użyć pkg_resources i __import__
funkcji.
Wracając do pierwotnego pytania, jeśli jesteś zadowolony z systemu Python i planujesz używać virtualenv i pip do tworzenia środowisk dla różnych aplikacji, to instalacja virtualenv i / lub pip na poziomie systemu za pomocą apt-get wydaje się całkowicie odpowiednia. Jedno słowo ostrzeżenia jest takie, że jeśli planujesz uaktualnić swoje dystrybucje Pythona, może to mieć efekt falowania na twoich virtualenvach, jeśli połączysz się z pakietami witryny systemu.
Powinienem również wspomnieć, że żadna z tych opcji nie jest z natury lepsza od pozostałych. Po prostu przyjmują różne podejścia. Korzystanie z wersji systemowej to doskonały sposób na instalację aplikacji w języku Python, ale może to być bardzo trudny sposób na programowanie w Pythonie. Łatwa instalacja i konfiguracja narzędzi jest bardzo wygodna w świecie bez virtualenv, ale jeśli potrzebujesz używać różnych wersji tej samej biblioteki, staje się to również dość nieporęczne. Pip i virtualenv działają bardziej jak maszyny wirtualne. Zamiast zajmować się instalowaniem rzeczy obok siebie, po prostu tworzysz zupełnie nowe środowisko. Wadą jest to, że ponad 30 virtualenvów później mogłeś zużywać sporo miejsca na dysku i zaśmiecać swój system plików.
Jak widać, przy wielu opcjach trudno jest powiedzieć, której metody użyć, ale po niewielkim zbadaniu przypadków użycia powinieneś być w stanie znaleźć metodę, która działa.
ez_setup.py
„lekkiej wersji” pobierania pip. Zrobiłbym to samo, ale obawiałbym się, że w najbliższej przyszłości pęknie i znowu tu utknę (jak zawsze)