Mam pakiet zewnętrzny, który chcę zainstalować w moim pythonie virtualenv z pliku tar. Jaki jest najlepszy sposób instalacji pakietu?
Odkryłem 2 sposoby na to:
- Rozpakuj plik tar, a następnie uruchom go
python setup.py install
w wyodrębnionym katalogu. pip install packagename.tar.gz
z przykładu nr 7 w https://pip.pypa.io/en/stable/reference/pip_install/#examples
Czy jest jakaś różnica, wykonując te dwa sposoby.
python
virtualenv
pip
setup.py
user2125465
źródło
źródło
pip
. Możesz za jego pomocą odinstalować pakiety.sdist
?yum
.Odpowiedzi:
Na powierzchni, zarówno to samo: wykonując jedną
python setup.py install
lubpip install <PACKAGE-NAME>
będzie zainstalować pakiet python dla ciebie, o wartości minimum zamieszania.Jednak użycie pip oferuje dodatkowe zalety, które sprawiają, że jest o wiele przyjemniejszy w użyciu.
setup.py
, często musisz ręcznie wyszukiwać i pobierać zależności, co jest żmudne i może stać się frustrujące.pip uninstall <PACKAGE-NAME>
ipip 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.setup.py
, musisz odwiedzić witrynę biblioteki, dowiedzieć się, skąd ją pobrać, wyodrębnić plik, uruchomićsetup.py
... W przeciwieństwie do tego pip automatycznie przeszuka indeks pakietów Pythona (PyPi), aby sprawdzić, czy pakiet tam istnieje, i automatycznie pobierze, rozpakuje i zainstaluje pakiet za Ciebie. Z kilkoma wyjątkami, prawie każda prawdziwie użyteczna biblioteka Pythona znajduje się na PyPi.virtualenv
, czyli programem umożliwiającym uruchamianie wielu projektów wymagających sprzecznych bibliotek i wersji języka Python na komputerze. Więcej info .Więc w zasadzie użyj pip. Oferuje tylko ulepszenia w stosunku do używania
python setup.py install
.Jeśli używasz starszej wersji Pythona, nie możesz zaktualizować i nie masz zainstalowanego pip, możesz znaleźć więcej informacji na temat instalowania pip pod następującymi linkami:
pip, sam w sobie, tak naprawdę nie wymaga samouczka. W 90% przypadków jedyne polecenie, którego naprawdę potrzebujesz, to
pip install <PACKAGE-NAME>
. To powiedziawszy, jeśli chcesz dowiedzieć się więcej o tym, co dokładnie możesz zrobić z pip, zobacz:Często zaleca się również jednoczesne używanie pip i virtualenv. Jeśli jesteś początkującym w Pythonie, osobiście uważam, że dobrze byłoby zacząć od używania pip i instalować pakiety globalnie, ale ostatecznie myślę, że powinieneś przejść na używanie virtualenv, gdy zajmujesz się poważniejszymi projektami.
Jeśli chcesz dowiedzieć się więcej o jednoczesnym używaniu pip i virtualenv, zobacz:
źródło
python setup.py install
również, że pobiera i instaluje zależności. Czy to zmiana od czasu, gdy napisałeś tę odpowiedź w 2013 roku?python setup.py install
jest odpowiednikiem 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 rzeczywistą instalację oprogramowania w systemie.pip
jest menedżerem pakietów, który może instalować, aktualizować, wyświetlać i odinstalowywać pakiety, podobnie jak znane menedżery pakietów, w tym:dpkg, apt, yum, urpmi, ports
itp. Pod maską będzie działaćpython setup.py install
, ale z określonymi opcjami kontrolującymi, jak i gdzie ostatecznie zostaną zainstalowane.Podsumowując: użyj
pip
.źródło
Pytanie dotyczy preferowanej metody instalacji lokalnego archiwum zawierającego pakiet pythona, a NIE korzyści z przesłania pakietu do usługi indeksującej, takiej jak PyPi.
Z tego co wiem, niektórzy dystrybutorzy oprogramowania nie przesyłają swojego pakietu do PyPi, zamiast tego proszą programistów o pobranie pakietu ze swojej strony internetowej i zainstalowanie.
To może działać, ale nie jest zalecane. Nie jest konieczne rozpakowywanie pliku tarball i wchodzenie do niego, aby uruchomić plik setup.py.
To jest sposób zaprojektowany i preferowany. Zwięzłe i zgodne z pakietami w stylu PyPi.
Więcej informacji na temat
pip install
można znaleźć tutaj: https://pip.readthedocs.io/en/stable/reference/pip_install/źródło