Упаковка проекта Python: простой пример

Оригинал статьи Felipe: Package a Python Project and Make it Available via pip install: Simple Example от 25-12-2020.

Вот пример проекта, созданного в соответствии с инструкциями в этом посте: Python Data Science Utils

Для получения дополнительной информации о том, что означают такие термины, как pip, virtualenv и т. д., см. Python Environment Cheatsheet

Образец файла setup.py

Файл setup.py - самый важный файл конфигурации для вашего проекта. Вот пример для начала:

# -*- coding: utf-8 -*-

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="myproject",
    version="0.0.1",                        # Обновляйте это для каждой новой версии
    author="Your name",
    author_email="your@email.com",
    description="long description",
    long_description=long_description,
    long_description_content_type="text/markdown",
    install_requires=[                      # Добавьте сюда зависимости проекта
        "pandas>=0.20.0"                    # пример: pandas версии 0.20 или выше                          
    ],                                             
    url="https://github.com/your/github/project",  
    packages=setuptools.find_packages(),
    classifiers=(                                 # Классификаторы помогают людям находить 
        "Programming Language :: Python :: 3",    # ваши проекты. См. все возможные классификаторы 
        "License :: OSI Approved :: MIT License", # на https://pypi.org/classifiers/
        "Operating System :: OS Independent",   
    ),
)

Структура проекта

Упаковка проекта

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

После выполнения команд упаковки ваш проект должен выглядеть так:

Загрузка проекта в PyPi

Попытка загрузить проект myproject не удастся, потому что кто-то уже создал проект на PyPi с таким именем!

Для загрузки проекта вам понадобится инструмент под названием twine, который можно установить с помощью pip:

На этом этапе вы должны зарегистрировать учетную запись на pypi.org, чтобы вы могли загружать пакеты.

После создания учетной записи вы можете загружать упакованные файлы

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

Поздравляю! После загрузки проекта (как указано выше) любой может установить ваш проект через pip.

Исправление проблем

Не удается импортировать модуль

Если вы не можете импортировать только что загруженный модуль, убедитесь, что у вас есть файл __init__.py, как в инструкциях, даже если ваш проект - это полный Python 3!

Модуль pkg_resources не имеет атрибута iter_entry_points

Принудительно переустановите setuptools:

Этот короткий пост является частью информационного бюллетеня. Нажмите здесь, чтобы зарегистрироваться.

Ссылки

Last updated

Was this helpful?