Установка пакетов Python без подключения к интернету

Python

Иногда необходимо установить пакеты Python на устройство без доступа к интернету, например, в закрытых средах. В этом случае нужно предварительно скачать необходимые пакеты на устройство с подключением к сети, а затем установить их офлайн. Этот метод позволяет установить все необходимые зависимости, скачанные предварительно на устройство с подключением к интернету.

Скачивание пакетов

Прежде всего, убедитесь, что у вас есть файл requirements.txt, содержащий список всех необходимых пакетов и их версий. Если файла requirements.txt нет, сгенерируйте его, используя команду:
pip freeze > requirements.txt
Затем загрузите необходимые пакеты в формате .whl по данным вашего файла requirements.txt
pip freeze > pip download -r requirements.txt
Эта команда создаст файлы с расширением .whl в текущей директории.

Подготовка целевого устройства

Создайте виртуальную среду на устройстве без подключения к интернету, куда вы собираетесь установить пакеты. Это важно для изоляции проекта и предотвращения конфликтов с другими пакетами.
mkdir offline_project
python -m venv .venv  # Или python3 -m venv .venv для Python 3
.\venv\Scripts\activate # Или .venv/bin/activate для Python 3
Создайте папку для хранения загруженных пакетов на offline устройстве
mkdir offline_project/dist
Скопируйте все .whl-файлы и requirements.txt в созданную директорию

Установка пакетов

Перейдите в директорию dist на устройстве без интернета
cd offline_project/dist
Используйте команду для установки пакетов из локальных файлов
pip install --no-index --find-links . -r requirements.txt
Эта команда устанавливает пакеты из локальных .whl-файлов, игнорируя стандартные репозитории.

Проверка установки

После завершения установки, проверьте, что все пакеты установлены корректно. Запустите код вашего приложения, чтобы убедиться, что все работает как ожидается. Этот метод обеспечивает надежную установку пакетов Python в средах без подключения к интернету, что очень полезно в различных ситуациях, например, при развертывании на серверах или в ограниченных сетях.

26 2024.12.13 19:39 pip python