2013-03-30 17 views
43

Mam zewnętrzny pakiet, który chcę zainstalować w moim python virtualenv z pliku tar. Jaki jest najlepszy sposób instalacji pakietu?Różnica między "python setup.py install" i "pip install"

Odkryłem 2 sposoby, które mogą to zrobić: 1) Wyodrębnij plik tar, a następnie uruchom "python setup.py install" w wyodrębnionym katalogu. 2) 'pip install packagename.tar.gz' z przykładu nr 7 w https://pip.pypa.io/en/stable/reference/pip_install/#examples

Czy istnieje jakakolwiek różnica w wykonywaniu ich na te 2 sposoby.

+2

Użyj 'pip'. Możesz odinstalować z nim pakiety. – Blender

+0

"Od źródła" jak w "Kasa VCS", czy jak w 'sdist'? – delnan

+0

Co jest "najlepsze", zależy od Twoich wymagań! Wypróbowałeś któreś z tych rozwiązań i ich zawiodłeś w jakiś sposób? Czy zastanawiasz się, jaka jest różnica * między tymi podejściami? –

Odpowiedz

48
Na powierzchni obydwa robią to samo: wykonanie albo python setup.py install lub pip install <PACKAGE-NAME> zainstaluje dla ciebie pakiet Pythona, z minimalną ilością zamieszania.

Jednak korzystanie z pip oferuje dodatkowe korzyści, które sprawiają, że korzystanie z niego jest o wiele przyjemniejsze.

  • pip automatycznie pobierze wszystkie zależności dla pakietu dla ciebie. W przeciwieństwie do tego, jeśli używasz setup.py, często musisz ręcznie szukać i pobierać zależności, co jest uciążliwe i może stać się frustrujące.
  • pip śledzi różne metadane, które umożliwiają łatwe odinstalowanie i aktualizację pakietów za pomocą jednego polecenia: pip uninstall <PACKAGE-NAME> i pip install --upgrade <PACKAGE-NAME>. W przeciwieństwie do tego, jeśli instalujesz pakiet za pomocą setup.py, musisz ręcznie usunąć i utrzymywać pakiet ręcznie, jeśli chcesz się go pozbyć, co może być potencjalnie podatne na błędy.
  • Nie musisz już ręcznie pobierać plików. Jeśli używasz setup.py, musisz odwiedzić witrynę biblioteki, dowiedzieć się, gdzie ją pobrać, wyodrębnić plik, uruchomić setup.py ... Natomiast pip automatycznie wyszuka Python Package Index (PyPi), aby sprawdzić, czy pakiet istnieje, oraz automatycznie pobierze, wyodrębni i zainstaluje pakiet dla ciebie. Z kilkoma wyjątkami, prawie każda prawdziwie użyteczna biblioteka Pythona znajduje się na PyPi.
  • pip pozwoli ci uzyskać koła easily install, co jest nowym standardem dystrybucji Pythona. More info about wheels.
  • pip oferuje dodatkowe korzyści, które dobrze integrują się z używaniem virtualenv, który jest programem, który pozwala uruchamiać wiele projektów, które wymagają konfliktowych bibliotek i wersji Pythona na komputerze. More info.
  • pip jest domyślnie dołączany do pakietu Python od wersji Python 2.7.9 w serii Python 2.x, a od wersji Python 3.4.0 do serii Python 3.x, dzięki czemu jest jeszcze łatwiejszy w użyciu.

Więc w zasadzie użyj pip. Oferuje tylko ulepszenia w zakresie korzystania z python setup.py install.


Jeśli używasz starszej wersji Pythona, nie można uaktualnić, a nie masz zainstalowanego pip można znaleźć więcej informacji na temat instalowania pip na poniższych linków:

pip sam, tak naprawdę nie wymaga samouczka. W 90% przypadków jedynym poleceniem, którego naprawdę potrzebujesz, jest pip install <PACKAGE-NAME>. Mimo to, jeśli jesteś zainteresowany dowiedzieć się więcej o szczegółach, co dokładnie można zrobić z pip, patrz:

Powszechnie zaleca się również użycie pip i virtualenv razem. Jeśli jesteś początkującym użytkownikiem Pythona, osobiście uważam, że byłoby dobrze zacząć od zwykłego korzystania z pip i instalowania pakietów na całym świecie, ale w końcu myślę, że powinieneś przejść do korzystania z virtualenv, gdy zajmiesz się bardziej poważnymi projektami.

Jeśli chcesz dowiedzieć się więcej na temat korzystania z PIP i virtualenv razem, patrz:

8

python setup.py install jest analogiem make install: jest to ograniczony sposób kompilowania i kopiowania plików do katalogów docelowych. Nie oznacza to, że jest to najlepszy sposób na naprawdę instalację oprogramowania w systemie.

pip jest menedżer pakietów, które można zainstalować, zaktualizować listy i deinstalacji pakietów, jak znajome menedżerów pakietów, w tym: dpkg, apt, yum, urpmi, ports itd. Pod maską, to będzie działać python setup.py install, ale z konkretnych opcji, aby kontrolować w jaki sposób i gdzie kończy sprawy zainstalowane.

Podsumowując: użyj pip.

Powiązane problemy