🛠 Локальный PyPI сервер (pypiserver)#

1. Установи pypiserver#

(желательно в отдельное окружение, если хочешь)

pip install pypiserver

2. Подготовь папку для пакетов#

Создай папку, где будут лежать твои .whl файлы:

mkdir ~/my-pypi-server

Скопируй туда собранные .whl файлы:

cp packages/nlp/dist/nlp-0.1.0-py3-none-any.whl ~/my-pypi-server/
cp packages/datacleaner/dist/datacleaner-0.1.0-py3-none-any.whl ~/my-pypi-server/

3. Запусти pypiserver#

pypi-server run -p 8080 ~/my-pypi-server

Что происходит:

  • -p 8080 — сервер стартует на порту 8080 (можно изменить).

  • ~/my-pypi-server — каталог, где хранятся .whl и .tar.gz пакеты.

После запуска у тебя будет работать локальный PyPI-сервер на:

http://localhost:8080/

4. Установить свой пакет#

Теперь в любом проекте ты можешь установить свой пакет так:

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

Обрати внимание на simple/ в конце URL — это стандарт PyPI протокола.


💡 Чтобы не писать долго#

Можно сохранить адрес в pip.conf, чтобы всегда использовать твой сервер без параметров.

Пример ~/.config/pip/pip.conf:

[global]
index-url = http://localhost:8080/simple/

Тогда достаточно будет просто:

pip install nlp

и pip сам будет ходить на твой локальный сервер.


🔥 Бонус — Автоматизация#

Чтобы ещё упростить себе жизнь:

  • Напиши скриптик run_pypi.sh:

#!/bin/bash
pypi-server run -p 8080 ~/my-pypi-server
  • Положи его рядом с проектами и запускай сервер в один клик.


⚡ Важные нюансы#

  • pypiserver — очень лёгкий и не требует базы данных.

  • Он не строит индекс автоматически — нужно положить .whl или .tar.gz файлы в папку.

  • По умолчанию нет авторизации. Это для локальной разработки, не для продакшена.

  • Если надо добавить новую версию пакета — просто скопируй новый .whl в папку!


✨ Итого#

Что сделаешь

Что получишь

pypi-server run

Локальный сервер

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

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

Автоматизация через pip.conf

Ещё проще установка