PyPI

Реестр пакетов Python Package Index (PyPI) - централизованное хранилище, где разработчики могут публиковать, обнаруживать и управлять пакетами Python для общего использования.

.pypirc - конфигурационный файл, используемый для настройки параметров доступа к PyPI при публикации пакетов Python. Файл расположен в домашней папке:

  • для ОС Linux - /home/username/.pypirc;
  • для Windows - C:\Users\Имя_пользователя\.pypirc.

pyproject.toml - файл конфигурации проекта Python, который используется для определения информации о проекте, зависимостях, сборке и других настройках. Файл pyproject.toml обычно располагается в корневой директории проекта Python.

Публикация пакетов PyPI

  1. Отредактируйте локальный файл .pypirc (vi ~/.pypirc). Пример:

    [distutils]
    index-servers = gitverse
    
    [gitverse]
    repository = https://gitverse.ru/api/packages/ваше_имя/pypi
    username = ваш_username_в_GitVerse
    password = ваш_пароль_в_GitVerse
    
    [global]
    trusted-host = https://gitverse.ru
  2. Откройте файл pyproject.toml и внесите изменения. Пример:

    [build-system]
    requires = ["hatchling"]
    build-backend = "hatchling.build"
    [project]
    name = "pypi_package_example"
    version = "1.0.0"
    authors = [
        { name="coauthor1", email="coauthor1@gitverse.ru" },
    ]
    description = "A small example package"
    readme = "README.md"
    requires-python = ">=3.8"
    classifiers = [
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ]
  3. Выполните команды

    python3 -m pip install --upgrade build
    python3 -m build
    python3 -m pip install --upgrade twine
    python3 -m twine upload --repository gitverse dist/*

Файлы пакета имеют расширения .tar.gz и .whl. Нельзя опубликовать пакет, если пакет с таким же именем и версией уже существует. Сначала нужно удалить существующий пакет.

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

Порядок установки описан на странице пакета.

Пример:

Порядок установки пакета на странице пакета