Введение
Эта лабораторная работа знакомит с файлом setup.py — фундаментальным компонентом для упаковки проектов на Python с использованием традиционной библиотеки Distutils. Вы узнаете о его назначении, структуре и о том, как его использовать для того, чтобы сделать ваши модули Python устанавливаемыми. По завершении этой работы вы создадите базовый файл setup.py и используете его для установки простого пакета Python.
Введение
На этом шаге вы поймете роль скрипта setup.py как центра всей активности по сборке, распространению и установке модулей с помощью Distutils.
Скрипт setup является ядром сборки, распространения и установки модулей с использованием Distutils. Его основная цель — описать ваше распределение модулей для Distutils, чтобы различные команды, работающие с вашими модулями, выполняли нужные действия.
Файл setup.py находится в основе проекта на Python. Он описывает все метаданные о вашем проекте. Хотя вы можете добавить множество полей для предоставления богатых метаданных, требуются только три:
name: Имя вашего пакета. Оно должно быть уникальным, если вы хотите опубликовать свой пакет в Python Package Index (PyPI).version: Текущая версия вашего пакета. Это помогает пользователям различать разные релизы.packages: Список всех пакетов Python, которые должны быть включены в ваше распределение.
Как только у вас появится файл setup.py, вы сможете легко установить пакет Python в вашу среду. Рекомендуемый способ — использовать pip для установки пакета из текущего каталога. Выполните следующую команду в терминале, находясь в том же каталоге, что и файл setup.py:
pip install .
Эта команда обработает процесс сборки и установки модуля, чтобы его можно было импортировать и использовать в других скриптах Python. На следующем шаге мы создадим файл setup.py и выполним эту команду.
Пример
На этом шаге мы рассмотрим базовый пример скрипта setup.py и создадим его для нашего проекта. Этот пример будет включать требуемые поля, а также необязательную информацию, такую как лицензия и длинное описание, считываемое из файла README.txt.
Сначала перейдите в подготовленную для вас директорию проекта. Используйте проводник файлов в левой части IDE, чтобы увидеть директорию pythonCheatsheet. Внутри вы найдете поддиректорию pipenv и файл README.txt.
Теперь создайте новый файл с именем setup.py внутри директории ~/project/pythonCheatsheet. Нажмите на папку pythonCheatsheet в проводнике файлов, затем нажмите на значок "New File" (Новый файл) и назовите его setup.py.
Скопируйте и вставьте следующий код в ваш только что созданный файл setup.py:
## setup.py: define package metadata for distribution
from distutils.core import setup
setup(
name='pythonCheatsheet', ## Package name (must be unique on PyPI)
version='0.1', ## Version number
packages=['pipenv',], ## List of packages to include
license='MIT', ## License type
long_description=open('README.txt').read(), ## Read description from file
)
Разберем этот скрипт:
from distutils.core import setup: Эта строка импортирует функциюsetup, которая является основной точкой входа для скрипта.name='pythonCheatsheet': Определяет имя нашего пакета.version='0.1': Устанавливает начальную версию.packages=['pipenv',]: Сообщает Distutils, что включаемый пакет находится в директорииpipenv.license='MIT': Указывает лицензию, под которой распространяется пакет.long_description=open('README.txt').read(): Считывает содержимоеREADME.txtдля предоставления подробного описания пакета.
Теперь, когда файл setup.py готов, откройте терминал, нажав на значок + на панели терминала в нижней части IDE. Убедитесь, что ваша текущая директория — ~/project/pythonCheatsheet. Вы можете перейти в нее, выполнив команду cd ~/project/pythonCheatsheet.
Выполните команду установки:
pip install .
Вы увидите вывод в терминале, пока pip собирает и устанавливает пакет. Вывод будет выглядеть примерно так, завершаясь подтверждением того, что пакет установлен:
Processing /home/labex/project/pythonCheatsheet
Building wheels for collected packages: pythonCheatsheet
Building wheel for pythonCheatsheet (setup.py) ... done
Created wheel for pythonCheatsheet: pythonCheatsheet-0.1-py3-none-any.whl
Stored in directory: /tmp/pip-wheel-xxxxx
Successfully built pythonCheatsheet
Installing collected packages: pythonCheatsheet
Successfully installed pythonCheatsheet-0.1
Чтобы подтвердить установку, вы можете использовать pip для вывода списка установленных пакетов и фильтрации по вашему новому пакету:
pip list | grep pythonCheatsheet
Вы должны увидеть свой пакет в списке с его версией:
pythonCheatsheet 0.1
Поздравляем! Вы успешно создали файл setup.py и установили пакет Python.
Резюме
В этой лабораторной работе вы узнали об основополагающей роли скрипта setup.py в распространении проектов на Python с использованием Distutils. Вы рассмотрели основные поля метаданных, необходимые для пакета: name, version и packages. Наконец, вы создали практический файл setup.py, включили дополнительные метаданные, такие как license и long_description, и успешно установили свой пакет в локальную среду с помощью команды pip install .. Теперь у вас есть базовые знания для того, чтобы сделать ваши собственные проекты на Python распространяемыми.



