2010-04-14 10 views
22

Chciałbym wypuścić moduł Pythona, który napisałem, który zależy od kilku pakietów. Jaki jest najprostszy sposób, aby te pakiety zostały pobrane programowo na wypadek, gdyby nie były dostępne w uruchamianym systemie? Większość tych modułów powinna być dostępna przez easy_install lub pip lub coś podobnego. Po prostu chcę uniknąć sytuacji, w której użytkownik instaluje każdy moduł osobno.Najłatwiejszy sposób automatycznego pobierania wymaganych modułów w Pythonie?

dzięki.

+0

Większość systemów zarządzania pakietami umożliwia określenie zależności pakietu, dzięki czemu zależności są instalowane automatycznie. Nie wiem, jak to zrobić z indeksem Packagetools/Python, ale zakładam, że istnieje mechanizm do podobnego określania zależności. –

Odpowiedz

4

Zobacz setuptools docs w jaki sposób zadeklarować zależnościami - pozwoli to easy_install znaleźć, pobrać i zainstalować wszystkie z nich (i domknięcie przechodnie jej), jeżeli wszystko jest dostępne w PyPi, lub w inny sposób, jeśli podasz adres URL zależnościami.

+0

Co sądzisz o pip? Porównanie pip do narzędzi SET wydaje się bardzo mocno sformułowane ... czy w społeczności Pythona rzeczywiście istnieje consensus, że PIP jest lepszy? – user248237dfsf

+0

Co więcej, czy PIP może obsługiwać zależności inne niż PyPi, takie jak Setuptools? – user248237dfsf

+0

@user, niestety nie mam wiele bezpośredniego doświadczenia z pip, ale mam wrażenie, że potrafi to, co może zrobić 'easy_install' i wiele więcej. Jak mówi http://www.b-list.org/weblog/2008/dec/15/pip/, "pip nie zmienia w żaden sposób twojego obiegu pracy z opakowaniem. Po prostu robisz paczkę tak, jak zawsze to robiłeś , a następnie umieścić go w sieci gdzieś (najlepiej wpisując go w indeksie pakietów Pythona, ale nie musisz tego robić, jeśli nie chcesz), a osoby używające pip mogą je pobrać i zainstalować. ". –

21

pip używa requirements files, które mają a very straightforward format.

Aby uzyskać więcej informacji na temat narzędzi do pakowania w Python, zobacz latest from the Python Packaging Authority (PyPA).

+0

@ J.F. Przypuszczam, że Idan Gazit jest odpowiedzialny za pierwszy obraz; Nie jestem pewien, kto jest odpowiedzialny za drugi. Obie są hostowane na Amazon S3; lokalizacje obrazów wskazują ich lokalizacje S3, więc możesz po prostu skopiować lokalizacje obrazów i użyć ich tutaj i gdzie indziej. Widziałem "Python Comprades" na wykładzie PyCon 2010 Tytusa Browna; "Nowa gorliwość" istnieje już od około roku. Być może niektóre z tropów na listach dyskusyjnych Pythona mogą spowodować pojawienie się oryginalnego źródła. – gotgenes

+0

Chociaż jest to obecnie najwyższa głosowana odpowiedź, nie oferuje tak naprawdę większego rozwiązania (fajna grafika). Obecnie znajduję [ten ostatni wpis] (https://caremad.io/blog/setup-vs-requirements/) na ten temat. Może pomóc innym w tych poszukiwaniach. – bnjmn

+0

Wygląda na to, że dystrybucja [jest teraz przestarzała] (https://pythonhosted.org/distribute/) – fabian789

Powiązane problemy