Jak zapobiec ponownemu pobieraniu wcześniej pobranych pakietów z PIP? Testuję instalację matplotlib, pakiet 11 MB, który zależy od kilku pakietów specyficznych dla dystrybucji. Za każdym razem, gdy uruchamiam pip install matplotlib
, to ponownie pobiera matplotlib. Jak mogę to zatrzymać?Jak buforować pobrane pakiety PIP
Odpowiedz
Możesz użyć określonej zmiennej środowiskowej PIP_DOWNLOAD_CACHE i wskazać katalog, w którym będą przechowywane twoje pakiety. Jeśli mają zostać zainstalowane ponownie, zostaną one pobrane z tego katalogu.
Wydaje się, że istnieje również dodatkowa opcja dla PIP pip --download-cache
, która powinna zrobić coś podobnego, ale nigdy nie próbowałem tego sam. Na swoim przykładzie, aby uniknąć ponownego pobierania matplotlib
za każdym razem, należy wykonać następujące czynności:
pip install --download-cache /path/to/pip/cache matplotlib
Czy to odpowiedź na pytanie?
Mogłeś
# download and extract package to build path
pip install --no-install matplotlib
# the build path could be found by
pip install --help|grep Unpack\ packages\ into -A 2
# then rm pip-delete-this-directory.txt inside the build path
# this prevent pip from removing package from the build directory after install
# you could check the content of the file
rm build/pip-delete-this-directory.txt
# from now on you could install matplotlib quickly
# this uses single build directory
# and can speed up compiling by caching intermediate objects.
pip install --no-download matplotlib
Ponadto, można ręcznie pobrać pakiet
pip install -d dir_for_packages matplotlib
następnie zainstalować go przez un-tar i python setup install
później.
Działa w podobny sposób z dodatkowym sprawdzaniem: najpierw wyszukuje najnowszą lub wyspecyfikowaną wersję docelowego pakietu z sieci, jeśli wyszukiwanie zakończyło się wynikiem i jest buforowany pakiet w katalogu określonym przez download-cache
, buforowany pakiet będzie używany zamiast pobierania. Na przykład,
pip install --download-cache . pymongo
pobierze pymongo pakietu do bieżącego katalogu:
http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz
http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz.content-type
dla nowych wersji PIP:
Nowsze wersje Pip domyślnie teraz cache pobierania. Zobacz tę dokumentację:
https://pip.pypa.io/en/stable/reference/pip_install/#caching
Dla starszych wersji PIP:
utworzyć plik konfiguracyjny o nazwie ~/.pip/pip.conf
i dodaj następującą zawartość:
[global]
download_cache = ~/.cache/pip
W jednym poleceniem:
printf '[global]\ndownload_cache = ~/.cache/pip\n' >> ~/.pip/pip.conf
Fajnie, łatwo i nie musisz pamiętać o dodaniu parametru za każdym razem. Zmarnowałem dużo Gb-owego ponownego pobierania gówna. Dziękuję Ci. – erm3nda
Dziękujemy, jeśli użyjesz pip3 do pobrania wymagań i otrzymasz ostrzeżenie o żółtym tekście, możesz mkdir ~/.cache/pip, a ostrzeżenie zniknie. –
- 1. Gdzie pip instaluje swoje pakiety?
- 2. Jak pip pakiety instalacyjne zgodnie z wymaganiami.txt z lokalnego katalogu?
- 3. Jak odinstalować wszystkie pakiety z homebrew, dystrybucji, macports, pip?
- 4. Zobacz, kiedy pakiety zostały zainstalowane/zaktualizowane za pomocą pip
- 5. Jak buforować odczyty?
- 6. Jak buforować zdarzenia strumieniowe?
- 7. Jak buforować uchwyty plików?
- 8. Zaktualizuj wszystkie pakiety pip, które nie pochodzą od Conda.
- 9. Aby buforować lub nie buforować - GetCustomAttributes
- 10. Pakiety paczek eksportowych
- 11. Jak buforować kolekcję w Magento?
- 12. Jak buforować w Symfony 2?
- 13. wget: pobrane nazwa pliku
- 14. Jak znaleźć pakiety zdefiniowane w jar?
- 15. Jak mogę uaktualnić określone pakiety za pomocą pip i pliku wymagań?
- 16. Jak mogę poinformować pip, że interesują mnie pakiety dla Pythona 3.4?
- 17. python pip cicha instalacja
- 18. Ajax nie może buforować
- 19. Dlaczego nie działa "pip show" lub "pip list"?
- 20. Jak buforować stronę internetową w PHP?
- 21. Yii2: jak buforować aktywnego dostawcę danych?
- 22. Jak buforować widoki w systemie Android?
- 23. Jak mogę buforować kolumnę obliczeniową w szynach?
- 24. Jak podwójnie buforować Panel w C#?
- 25. Jak buforować odpowiedzi REST, Wiosna dla Androida
- 26. Jak POST buforować JSON przy użyciu libcurl?
- 27. Czy warto buforować instancje DataContractSerializer?
- 28. Jak mogę zainstalować pakiety hostowane w prywatnym PyPI za pomocą setup.py?
- 29. Wiele instalacji python i pip, koleś, gdzie są moje pakiety witryny?
- 30. pip: niespójne problemy z uprawnieniami
Nie jestem pewien, czy PIP to robi, ale z ' easy_install', jeśli masz pakiet jako plik '.tar' (lub przypuszczalnie zip?) w katalogu lokalnym, spróbuje najpierw użyć tego pakietu. –
Zajrzyj także do [pip-accel] (https://pypi.python.org/pypi/pip-accel). To nowe i lepsze rozwiązanie tego problemu. – qris
z pip 8 '--download-cache' został usunięty, pip powinien domyślnie używać cache'u, który można wyłączyć za pomocą' --no-cache-dir' – Ski