Упаковка проекта 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
Для загрузки проекта вам понадобится инструмент под названием twine, который можно установить с помощью pip:
На этом этапе вы должны зарегистрировать учетную запись на pypi.org, чтобы вы могли загружать пакеты.
После создания учетной записи вы можете загружать упакованные файлы
Поздравляю! После загрузки проекта (как указано выше) любой может установить ваш проект через pip.
Исправление проблем
Не удается импортировать модуль
Если вы не можете импортировать только что загруженный модуль, убедитесь, что у вас есть файл __init__.py, как в инструкциях, даже если ваш проект - это полный Python 3!
Модуль pkg_resources не имеет атрибута iter_entry_points
Принудительно переустановите setuptools:
Ссылки
Last updated
Was this helpful?