Бывает случай когда необходимо установить пакеты offline. Скачивание пакетов в указанную папку нужно, когда на целевой машинке нет доступа к репозиториям или к Интернет в целом. В таком случае вам поможет эта короткая инструкция. Нужно подготовить всё на машине , где есть доступ, затем перенести на целевую, и там уже установить пакеты offline
Скачивание пакетов в указанную папку
1. Базовый способ скачивания
pip download -r requirements.txt -d ./offline_packages
-d ./offline_packages — директория, куда будут сохранены все .whl файлы
Эта команда скачает все пакеты и их зависимости
2. С учетом архитектуры и версии Python
Чтобы скачать пакеты именно для нужной платформы (например, для Linux x86_64):
pip download -r requirements.txt -d ./offline_packages --platform manylinux2014_x86_64 --python-version 3.10 --only-binary=:all:
- —platform — целевая платформа
- —python-version — версия Python
- —only-binary=:all: — скачивать только бинарные пакеты (.whl)
3. Скачивание для конкретной ОС
# Для Linux pip download -r requirements.txt -d ./offline_packages --platform manylinux2014_x86_64 # Для Windows pip download -r requirements.txt -d ./offline_packages --platform win_amd64 # Для macOS pip download -r requirements.txt -d ./offline_packages --platform macosx_10_9_x86_64
Установка на хосте. Если нужно установить пакеты offline
Способ 1: Установка из скачанной папки
pip install --no-index --find-links ./offline_packages -r requirements.txt
- —no-index — не обращаться к PyPI (интернету)
- —find-links — путь к папке с пакетами
Способ 2: Если нужно установить конкретный пакет
pip install --no-index --find-links ./offline_packages django==4.2.0
Полный пример работы
# 1. Создаем виртуальное окружение python3 -m venv venv source venv/bin/activate # 2. Скачиваем все пакеты в папку whl_cache pip download -r requirements.txt -d ./whl_cache # 3. Архивируем для переноса на другой хост tar -czf packages.tar.gz whl_cache/ # 4. На хосте без интернета распаковываем и устанавливаем tar -xzf packages.tar.gz pip install --no-index --find-links ./whl_cache -r requirements.txt
Дополнительные полезные опции
Скачать с учетом конкретных версий Python
# Узнать версию Python на целевом хосте python3 --version # например, 3.10 # Скачать для этой версии pip download -r requirements.txt -d ./whl_cache --python-version 3.10
Создать requirements.txt из текущего окружения
Если у вас нет requirements.txt, создайте его:
pip freeze > requirements.txt
Скачать только если пакет отсутствует локально
pip download -r requirements.txt -d ./whl_cache --exists-action i
- —exists-action i — игнорировать уже существующие файлы
⚠️ Важные нюансы
- Архитектура — убедитесь, что скачиваете пакеты для той же архитектуры, что и целевой хост
- Версия Python — версия Python должна совпадать
- Зависимости — pip download автоматически скачивает все зависимости
- Pure Python пакеты — они будут работать на любой платформе, проблем с ними нет
Для максимальной совместимости
# Скачать только pure Python пакеты (будут работать везде) pip download -r requirements.txt -d ./offline_packages --no-binary :all: # Или скачать для конкретной платформы pip download -r requirements.txt -d ./offline_packages --platform manylinux2014_x86_64 --only-binary=:all:
Таким образом, вы получите папку offline_packages со всеми .whl файлами, которую можно перенести на любой хост без интернета!