2012-07-16 15 views
6

Chciałbym spakować aplikację naukową Pythona dla PyPI. Mój problem polega na tym, że opiera się na depresjach PyPI (np. Numpy, scipy itp.), A także innych, które muszą być rozpatrywane na poziomie OS: wxPython i Python-VTK (np. Z apt-get na Ubuntu, homebrew na OSX, itp.).Pakowanie aplikacji Python z zależnościami PyPI + OS

Chciałbym wiedzieć, jaka byłaby idealna strategia, aby to zrobić, aw szczególności, który system pakowania najlepiej pasuje (obecnie preferuję Dystrybucję).

Odpowiedz

3

distribute jest widelcem setuptools z lepszą dokumentacją. W zasadzie masz distutils (stdlib) i setuptools jako swoje wybory. Ponieważ distutils nie pozwala określić zależności, pozostaje tylko setuptools.

Generalnie wylicza się wszystkie zależności i wyraźnie dokumentuje procedurę instalacji (w tym w polu long_description wysyłanym do PyPI). Dołącz pakiety zainstalowane na poziomie systemu operacyjnego, większość dystrybucji zawiera informacje o jajach podczas ich instalowania.

+0

Dzięki Martijn. Oprócz wyraźnego wymienienia i udokumentowania kroków instalacji, czy setuptools udostępnia dodatkowy mechanizm, który może pomóc w skryptowaniu instalacji zestawów na poziomie systemu operacyjnego? Jeśli nie, zastanawiam się, jaką korzyść miałaby rejestracja mojego pakietu na PyPI (to znaczy, jeśli wymaga on od użytkownika wykonywania dodatkowych ręcznych czynności, tj. Jeśli nie jest w stanie całkowicie zautomatyzować procesu). – cjauvin

+0

Nie, przepraszam. Ani setuptools, ani narzędzia instalacyjne (pip, easy_install, zc.buildout) nie zapewniają tego wsparcia. Ale nawet w przypadku wielu jajek dostępnych w PyPI nadal musisz zainstalować zależności na poziomie systemu operacyjnego; cxOracle wymaga sterowników oracle, PIL potrzebuje libjpeg itp. Ponadto niektóre z twoich zależności najlepiej zainstalować przez system operacyjny, ale * można * również zainstalować jako jaja. Jest to trudny problem do rozwiązania tylko za pomocą narzędzi, więc dokumentacja jest lepszym rozwiązaniem. –

Powiązane problemy