Czy istnieje sposób na skonfigurowanie easy_install, aby uniknąć konieczności ponownego pobierania plików, gdy instalacja się nie powiedzie?Łatwe do zainstalowania cache pobrane pliki
Odpowiedz
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
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
.)
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
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
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).
Należy zwrócić uwagę na pliki 'pip cant install binaries (_. Pliki_o) '. Ma to kluczowe znaczenie na platformach Windows. –