pypiserver: минималистичный локальный сервер для пакетов PyPI

pypiserver — минималистичный сервер PyPI для загрузки и скачивания пакетов через pip или easy_install.

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

Проект написан на Python и поддерживает версии 3.10 и выше. Запустить pypiserver можно либо через pip, установив с помощью команды pip install pypiserver, либо протестировав его через Docker с образа pypiserver/pypiserver. Обрати внимание, что проект находится под лицензией MIT, что удобно для коммерческого использования.

Нет явных ограничений на использование, но проект лучше всего подходит для локальных серверов и небольших команд, поэтому об этом стоит помнить при планировании инфраструктуры.

**pypiserver** — это минималистичный совместимый с PyPI сервер для использования с инструментами установки, такими как **pip** и **easy_install**. Он основан на фреймворке **bottle** и позволяет обслуживать пакеты из стандартных директорий. С помощью него можно загружать колеса, бинарные дистрибутивы и яйца, а также сопутствующие PGP-подписи, используя инструменты, такие как **pip**, **setuptools**, **twine**, **pypi-uploader** или просто копируя файлы с помощью **scp**.

Установка и запуск

Для установки **pypiserver** требуется Python версии 3.10 и выше:


pip install pypiserver
mkdir ~/packages  # Создайте директорию для хранения пакетов

Чтобы запустить сервер, используйте следующую команду:


pypi-server run -p 8080 ~/packages &  # Сервер будет слушать все IP-адреса

После этого с клиентского компьютера можно установить пакеты, используя:


pip install --extra-index-url http://localhost:8080/simple/ 

Особенности и возможности

  • Поддержка стандартных инструментов Python для упаковки и установки.
  • Сервер легко развертывается и настраивается.
  • Управление обновлениями пакетов с помощью команды **pypi-server update**.
  • Поддержка различных методов аутентификации, включая **Apache htpasswd**.
  • Совместимость с Docker, что позволяет быстро разворачивать сервер в контейнере.

Ограничения

Следует отметить, что **pypiserver** не реализует полный API PyPI и подходит только для базового функционала, позволяющего работать с **easy_install** и **pip**. Также у него есть ограничения в области обновления пакетов и обработки документации.

Использование Docker

Для запуска **pypiserver** в Docker достаточно выполнить команду:


docker run pypiserver/pypiserver:latest run

При этом можно смонтировать локальную директорию для хранения пакетов:


docker run -p 80:8080 -v ~/packages:/data/packages pypiserver/pypiserver:latest run

Заключение

**pypiserver** — это удобное решение для создания приватного репозитория пакетов Python. Он прост в использовании и настройке, отлично подходит для разработчиков, которым нужен локальный индекс пакетов для установки зависимостей.

Открыть на GitHub: pypiserver/pypiserver →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте