2009-02-09 10 views

Odpowiedz

16

pip (http://pypi.python.org/pypi/pip/) jest zamiennikiem zamiennym dla narzędzia easy_install i może to zrobić.

Po prostu uruchom easy_install pip i ustaw zmienną środowiskową PIP_DOWNLOAD_CACHE na ścieżkę do pip, aby zapisać pliki. Należy pamiętać, że pamięć podręczna nie będzie działała z zależnościami, które są pobierane z repozytorium kodu źródłowego (jak svn/git/hg/bzr).

Następnie użyj pip install zamiast easy_install

+7

Należy zwrócić uwagę na pliki 'pip cant install binaries (_. Pliki_o) '. Ma to kluczowe znaczenie na platformach Windows. –

13

Oto moje rozwiązanie używając pip, zarządzanie nawet instalacji pakietów binarnych i użyteczny zarówno na Linux i Windows. Zgodnie z życzeniem, ograniczy pobieranie z PyPi do mininum, a jako dodatkowy bonus na Linuksie pozwala przyspieszyć powtarzaną instalację pakietów, które zazwyczaj wymagają kompilacji na ułamek sekundy.

Konfiguracja zajmuje kilka kroków, ale ja myślę, że warto to zrobić.

Tworzenie pip plik konfiguracyjny

Tworzenie pip plik konfiguracyjny (w systemie Linux: ~/.pip/pip.conf, Windows% HOME% \ pip \ pip.ini)

Mój jeden ma tę zawartość :

[global] 
download-cache = /home/javl/.pip/cache 
find-links = /home/javl/.pip/packages 

[install] 
use-wheel = yes 

[wheel] 
wheel-dir = /home/javl/.pip/packages 

Zapełnianie cache dir - przechodzi automatycznie

cache reż dostanie buforowane wersji danych pobranych z PyPI za każdym razem, p ip próbuje pobrać pakiet z Pypi. Łatwo jest go tam dostać (nie wymaga to szczególnej troski), ale pamiętaj, że z punktu widzenia pip, są to tylko pobierane dane pobierane z PyPi, a nie pakiety, więc w przypadku korzystania z opcji --no-index, to nie zadziała.

pip install --download zapełnić packages reż

packages dir to miejsce umieścić pliki pakietu do rzeczywistego. Na przykład. dla mojego ulubionego pakietu plac, chciałbym zrobić:

$ pip zainstalować --download ~/.pip/pakiety Plac

i plac pliku pakietu będzie poja- w tym katalogu. Możesz nawet użyć pliku -r requirements.txt, aby zrobić to dla wielu pakietów naraz.

Pakiety te są używane nawet z $ pip install --no-index <something>.

Zapobieganie powtórnemu kompilowaniu tego samego pakietu w systemie Linux

E.g. Pakiet lxml wymaga komplikacji, a pobieranie i kompilacja może trwać od 45 sekund do minut. Korzystając z formatu koła, możesz zaoszczędzić wiele.

Install wheel narzędzie, jeśli nie ma go jeszcze:

$ pip install wheel 

Tworzenie kółka dla lxml (zakładając, udało ci się zainstalować lxml w przeszłości - to wymaga pewnych bibliotekami w systemie mają być zainstalowane):

$ pip wheel lxml 

Ten podchodzi do pobrania, kompilacji, ale ostatecznie skutkuje lxml whl pliku będąc w packgages reż.

Odtąd

$ pip install lxml 

lub nawet szybciej

$ pip install --no-index lxml 

zajmie ułamek sekundy, jak to stosuje koła sformatowany pakiet.

Przygotować pakiet koła od konfiguracji Okno pakietu exe

(uwaga: może to być przygotowanym nawet na komputerze z systemem Linux, nie ma kompilacji tylko niektóre przepakowywanie z pliku exe do whl.)

  1. pobrać formularz exe pakietu od PyPI, np

    $ wget https://pypi.python.org/packages/2.7/l/lxml/lxml-3.2.3.win32-py2.7.exe#md5=14ab978b7f0a3382719b65a1ca938d33 $ dir lxml-3.2.3.win32-py2.7.exe

  2. przekształcić go whl

    $ nawrócony koło lxml-3.2.3.win32-py2.7.exe $ dir lxml-3.2.3.win32-py2.7.exe lxml-3,2. 3-cp27-none-win32.whl

  3. testowania go:

    $ pip zainstalować lxml

lub

$ pip install --no-index lxml 

będzie bardzo szybki.

Pamiętaj, że wheel convert może dokonać dokładnie tej samej konwersji dla pakietów sformatowanych w jajach.

Niech easy_install i setup.py install ponownie użyć packages reż

easy_install$ python setup.py install i nie wydają się oferować pobierania cache, ale pozwalają na stosowanie pakietów mamy w naszej packages reż.

Aby to zrobić, plik edit config dla tych dwóch narzędzi:

W systemie Linux: $HOME/.pydistutils.cfg

W systemie Windows: %HOME%\pydistutils.cfg

W moim przypadku mam tutaj :

[easy_install] 
find_links = /home/javl/.pip/packages 

Ta konfiguracja może pomóc w niektórych przypadkach wywołań pip install, gdy pip próbuje wejść zatrzymaj pakiet, deklarując zależność od innych. Ponieważ deleguje to zadanie do wywołania setup.py, bez konfiguracji .pydistutils.cfg pobierze plik z PyPi.

Niestety, format koła nie jest obsługiwany w tym przypadku (o ile mi wiadomo).

Powiązane problemy