Как использовать pip Python для загрузки и хранения архивных файлов для пакета? - PullRequest
89 голосов
/ 04 сентября 2011

Если я хочу использовать команду pip для загрузки пакета (и его зависимостей), но сохранить всех загруженных заархивированных файлов (скажем, django-socialregistration.tar.gz) - есть ли способ сделать это?

Я пробовал различные параметры командной строки, но всегда кажется, что он распаковывает и удаляет zipfile - или он получает zipfile, но только для оригинального пакета зависимости.

Ответы [ 6 ]

111 голосов
/ 04 сентября 2011

Опция --download-cache должна делать то, что вы хотите:

pip install --download-cache="/pth/to/downloaded/files" package

Однако, когда я это проверял, основной пакет загружался, сохранялся и устанавливался нормально, но зависимости были сохранены с полным URL-адресом.путь в качестве имени - немного раздражает, но все файлы tar.gz были там.

Опция --download загружает основной пакет и его зависимости и не устанавливает ни один из них.( Примечание , что до версии 1.1 опция --download не не загружает зависимости.)

pip install package --download="/pth/to/downloaded/files"

Документация pipКонтуры с использованием --download для быстрой и локальной установки .

55 голосов
/ 03 июля 2016

pip install --download устарело. Начиная с версии 8.0.0, вы должны использовать команду pip download:

 pip download <package-name>
52 голосов
/ 24 сентября 2013

Я всегда делаю это для загрузки пакетов:

pip install --download /path/to/download/to_packagename

ИЛИ

pip install --download=/path/to/packages/downloaded -r requirements.txt

И когда я хочу установить всеиз тех библиотек, которые я только что скачал, я делаю это:

pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

ИЛИ

pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


Обновление

Кроме того, чтобы получить все пакеты, установленные в одной системе, вы можете экспортировать их все в requirement.txt, который будет использоваться для их установки в другой системе, мы делаем это:

pip freeze > requirement.txt

Затем для загрузки можно использовать requirement.txt, как указано выше, или сделать это для их установки из requirement.txt:

pip install -r requirement.txt

ССЫЛКА: pip installer

7 голосов
/ 11 декабря 2015

В версии 7.1.2 pip загружает колесо пакета (если доступно) со следующим:

pip install package -d /path/to/downloaded/file

Исходный дистрибутив загружается следующим образом:

pip install package -d /path/to/downloaded/file --no-binary :all:

Они также загружают зависимости, если pip знает о них (например, если pip show package перечисляет их).


Обновление

Как отметил Антон Ходак , команда pip download предпочтительнее начиная с версии 8. В вышеприведенных примерах это означает, что /path/to/downloaded/file должен быть задан с опцией -d, поэтому замена install с download работает.

6 голосов
/ 22 февраля 2018

Используйте pip download <package1 package2 package n> для загрузки всех пакетов, включая зависимости

Используйте pip install --no-index --find-links . <package1 package2 package n> для установки всех пакетов, включая зависимости. Он получает все файлы из CWD. Это ничего не загрузит

1 голос
/ 22 ноября 2018

pip wheel - еще один вариант, который вы должны рассмотреть:

pip wheel mypackage -w .\outputdir

Он будет загружать пакеты и их зависимости в каталог (текущий рабочий каталог по умолчанию), но выполняет дополнительный шаг преобразования любых исходных пакетов в колеса.

Удобно поддерживает файлы требований:

pip wheel -r requirements.txt -w .\outputdir

Добавьте аргумент --no-deps, если вам нужны только специально запрошенные пакеты:

pip wheel mypackage -w .\outputdir --no-deps
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...