К подготовке и публикации первого пакета Python готовы!
Python стал одним из самых широко используемых языков программирования. Главным образом объясняется это тем, что мы, его обычные пользователи, можем поделиться своим кодом, обеспечивая другим возможность беспрепятственно им пользоваться. А сделать это можно общепринятым способом, упаковав весь код и загрузив его в каталог программного обеспечения Python (Python Package Index или PyPI), с помощью которого пользователи легко и просто установят ваш пакет, используя инструмент pip.
Если у вас был опыт публикации пакета Python, то вы уже знаете, насколько всё просто. Однако новичкам этот процесс ошибочно представляется геркулесовым трудом. В данной статье будут рассмотрены все этапы подготовки пакета и его последующей публикации.
Очевидно, что на первом этапе ваша задача — завершить проект. Однако все понимают, что пакеты никогда не бывают идеальными. Поэтому не будем ждать окончания проекта, а заранее узнаем, как опубликовать пакет.
Для работы с текущим руководством представим, что директория со всеми файлами Python, включая нужный нам python_file_0.py, называется test_package. Именно этот пакет мы и намерены опубликовать. Следуя принципу простоты, файл python_file_0.py содержит лишь следующий код, который будет использован по мере нашей готовности импортировать пакет после его публикации:
1. Подготовка файлов
Перед тем, как углубиться в детали публикации, сначала структурируем директорию с помощью необходимых вспомогательных файлов. Ниже представлена файловая структура пакета:
the_root_dir/ |— README.md |— setup.py |— test_package | |— __init__.py | |— python_file_0.py | |— python_file_1.py | |— python_file_2.py
- В корневой директории на одном уровне с test_package создайте файл README.md. Он будет содержать необходимую пользователям информацию о пакете, например сведения об установке и инструкции по применению.
- На этом же уровне находится файл setup.py. Он будет включать информацию, необходимую для подготовки пакета к публикации. Вскоре мы рассмотрим содержимое этого файла.
- В директории test_package создайте файл __init__.py именно с таким именем. Он трансформирует обычную директорию в пакет Python. Для этого простого пакета просто поместим код в python_file_0.py и экспортируем from test_package.python_file_0 import hello_world.
Файл README
Теоретически для этого файла можно использовать простой текст, но отдав предпочтение файлу Markdown, вы получите разные возможности форматирования и таким образом сделаете его более интересным для чтения. Ниже показан пример простого файла README.md:
Это тестовый пакет, представляющий собой часть обучающего руководства Meduim.
**Текст жирным шрифтом**
*Текст, выделенный курсивом*
Pip wheel что это
What’s on this Page
.WHL вариант №
Файл WHL (Wheel) — это файл пакета дистрибутива, сохраненный в формате колеса Python. Это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом колеса. Подобно установочному файлу MSI, формат файла WHL представляет собой готовый к установке формат, который позволяет запускать установочный пакет без создания исходного дистрибутива.
Формат файла WHL
Формат файла WHL представляет собой архив ZIP (.zip), который содержит все установочные файлы и метаданные, необходимые установщикам для установки пакета. Эти файлы WHL можно извлечь с помощью функции распаковки или стандартных приложений для распаковки, таких как WinZIP и WinRAR.
Соглашение об именах файлов WHL
Файл WHL назван в соответствии со следующим соглашением.
Ниже приведен пример имени файла WHL.
cryptography-2.9.2-cp35-abi3-macosx_10_9_x86_64.whl
- cryptography — это имя пакета.
- «2.9.2» — это пакетная версия криптографии. Версия — это строка, совместимая с PEP 440, например 2.9.2, 3.4 или 3.9.0.a3.
- cp35 — это тег Python, обозначающий реализацию и версию Python, которые требуются для колеса.
- abi3 — это тег ABI. ABI означает двоичный интерфейс приложения.
- macosx_10_9_x86_64 — это тег платформы, который довольно многословен.
использованная литература
- Что такое колеса Python и зачем вам это?
- Колесо Python
Установка пакетов pip в Python
При разработке софта на «Пайтон» нередко появляется необходимость в использовании программных пакетов, отсутствующих в данный момент на компьютере. В этой ситуации поможет pip install. О том, где взять нужный пакет, как его установить и потом использовать, пойдёт речь в этой статье.
Где взять необходимый пакет pip в Python?
Если вы захотите поработать над задачей, выходящей за рамки базового функционала «Питона», вы неизбежно столкнётесь с необходимостью установки дополнительного программного пакета (package). Это может быть и работа с web, и криптография, и обработка изображений и многое другое. При возникновении такой ситуации у пользователя появятся закономерные вопросы: — какой именно программный пакет содержит необходимый функционал; — как найти этот пакет; — где скачать; — как разместить и приступить к использованию.
В теории все эти действия можно выполнить вручную, однако зачем это делать, когда процесс можно автоматизировать? Да и скачивать программные пакеты с непроверенных сайтов небезопасно.
Прекрасным решением станет использование PyPI (Python Package Index) — открытого репозитория, предназначенного для разработчиков Python. В репозитории можно найти программные пакеты, позволяющие решать почти любые поставленные задачи. Есть возможность выгружать туда и собственные пакеты. А чтобы выполнять их скачивание и установку, используется специальная программа по имени pip (пип).
Пакетный менеджер pip
Pip представляет собой консольную программу, не имеющую графического интерфейса. После её скачивания и установки утилита пропишется в PATH, в результате чего pip станут доступны для применения.
Запускать эту программу можно как в самостоятельном виде, так и с помощью «Пайтон»-интерпретатора.
С помощью интерпретатора:
> python -m pipВ последнем случае обратите внимание на ключ –m. Он значит, что выполняется запуск модуля (в нашем случае это pip).
Устанавливаем pip на Python. Как установить pip?
Начиная с Python 2.7.9 и 3.4, эта программа инсталлируется по дефолту. Если же у вас другая версия Python либо утилита по каким-то причинам не установлена, решить вопрос можно без особых затруднений и несколькими способами. Для начала рассмотрим самый универсальный и работающий в большинстве случаев.
Предполагается, что Python уже инсталлирован (installed). Далее скачиваем скриптовый файл get-pip.py:
> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyА потом выполняем его:
> python get-pip.pyОдновременно с pip инсталлируются setuptools и wheels. Wheels представляет собой формат пакетного дистрибутива, setuptools – набор инструментов, необходимых для пакетного построения.
Linux-установка
Пользователи Linux могут воспользоваться для инсталляции встроенным в дистрибутив менеджером пакетов. Ниже вы увидите соответствующие команды для некоторых операционных систем Linux (рассматривается лишь Python 3, т. к. Python 2 устарел и, как утверждают разработчики, его поддержка вскоре прекратится).
Обновляем pip
При работе с операционной системой Windows команда обновления следующая:
Пользователям Linux следует запустить:
Применение pip
Теперь пришло время поговорить про особенности использования этой утилиты на Python. Речь идёт уже о непосредственной установке пакетов, их удалении и обновлении.
Устанавливаем пакеты pip в Python
Утилита обеспечивает инсталляцию: — последней версии; — конкретной версии; — с помощью логического выражения, позволяющего определить, что требуется версия не ниже указанной.
Также поддерживается инсталляция непосредственно из нужной папки репозитория.
Как выглядят все эти варианты, можно посмотреть ниже.
Устанавливаем последнюю версию:
> pip install ProjectNameУстанавливаем конкретную версию:
> pip install ProjectName==2.8Инсталлируем пакет, имеющий версию не ниже 2.9:
> pip install ProjectName>=2.9Инсталлируем пакет Python из репозитория Git:
> pip install -e git+https://gitrepo.com/ProjectName.gitИнсталлируем посредством альтернативного индекса:
> pip install --index-url http://pypackage.com/ ProjectNameИнсталлируем пакет из локальной директории (папки):
> pip install ./dist/ProjectName.tar.gzДругие операции
Для выполнения удаления подходит простая команда:
Для обновления пакета нужен ключ –upgrade:
Просмотреть установленные пакеты и вывести их список тоже несложно:
> pip listЕсли нужна более подробная информация об определённом пакете, пригодится аргумент show.
Бывает, что точное название пакета неизвестно. В таком случае можно воспользоваться поиском в папке (репозитории) и просмотреть пакеты, которые содержат определённое слово — здесь пригодится аргумент search.
Управление необходимыми пакетами Python с помощью requirements.txt
Если вы предоставляете общий доступ к проекту Python другим пользователям или используете систему сборки для создания приложения Python, необходимо указать все необходимые внешние пакеты. При планировании копирования проекта в другие расположения, где необходимо восстановить среду, необходимо также определить необходимые зависимые пакеты.
Рекомендуемый подход к указанию внешних зависимых пакетов Python — использовать файл требований (readthedocs.org). Этот файл содержит список команд pip, которые устанавливают все необходимые версии зависимых пакетов для проекта. Наиболее распространенная команда . pip freeze > requirements.txt Эта команда записывает текущий список пакетов среды в файл requirements.txt .
Файл требований содержит точные версии всех установленных пакетов. Файлы требований можно использовать для замораживания требований среды. Используя точные версии пакетов, вы можете легко воспроизвести среду на другом компьютере. Файлы требований включают пакеты, даже если они установлены с диапазоном версий, в качестве зависимости от другого пакета или установщика, отличного от pip.
Необходимые компоненты
- Visual Studio, установленная с поддержкой рабочих нагрузок Python. Дополнительные сведения см. в статье "Установка поддержки Python в Visual Studio".
- Файл требований. Вы можете использовать существующий файл требований или создать файл , как описано в этой статье.
Технически любое имя файла можно использовать для отслеживания требований. Однако Visual Studio предоставляет конкретную поддержку файла требований с именем "requirements.txt". Аргумент можно использовать -r при установке пакета, чтобы указать предпочитаемое имя файла.
Установка зависимостей, перечисленных в requirements.txt
Если вы загружаете проект с файлом requirements.txt , можно установить все зависимости пакета, перечисленные в файле.
- В Обозреватель решений разверните проект и разверните узел сред Python.
- Найдите узел среды, для которого нужно установить пакеты. Щелкните узел правой кнопкой мыши и выберите " Установить" из requirements.txt.



Установка зависимостей в виртуальной среде
Можно также установить зависимости пакета Python в существующей виртуальной среде.
- В Обозреватель решений разверните проект и разверните узел сред Python.
- Найдите узел виртуальной среды, для которого нужно установить пакеты. Щелкните узел правой кнопкой мыши и выберите " Установить" из requirements.txt.
Если вам нужно создать виртуальную среду, см. статью "Использование виртуальных сред".
Создание файла requirements.txt
Если все необходимые пакеты Python для проекта уже установлены в среде, можно создать файл requirements.txt в Visual Studio.
- В Обозреватель решений разверните проект и разверните узел сред Python.
- Найдите узел среды, для которого нужно создать файл требований. Щелкните узел правой кнопкой мыши и выберите "Создать requirements.txt".


Обновление или добавление записей в существующий файл requirements.txt
Если файл requirements.txt уже существует, Visual Studio отображает запрос с несколькими параметрами:
- Замените весь файл: перезаписать все элементы, комментарии и параметры, определенные в файле requirements.text .
- Обновите существующие записи: обновите описатели версий в файле requirements.text , чтобы соответствовать текущей установленной версии.
- Обновите и добавьте записи: обновите существующие требования в файле requirements.text и добавьте все новые требования к пакету в конец файла.
Visual Studio выполняется pip для обнаружения текущих требований к пакету для среды, а затем обновляет файл requirements.txt на основе выбранного вами файла.
Установка зависимостей пакета вручную
Если pip не устанавливает зависимость пакета, определенную в файле requirements.txt , вся установка завершается сбоем.
У вас есть два варианта решения этой проблемы:
- Вручную измените файл requirements.txt, чтобы исключить сбой пакета, а затем повторно запустите процесс установки.
- Используйте параметры команды pip для ссылки на устанавливаемую версию пакета.
Обновление файла требований с помощью пип-колеса
При использовании pip wheel команды для компиляции зависимостей можно добавить --find-links параметр в файл requirements.txt .
-
pip wheel Вызовите команду для компиляции списка необходимых зависимостей:
pip wheel azure
В выходных данных показаны колеса, созданные для собранных пакетов:
Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up.
type requirements.txt --find-links wheelhouse --no-index azure==0.8.0
pip install -r requirements.txt -v
Выходные данные отслеживают ход выполнения процесса установки:
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up. Removing temporary dir C:\Project\env\build.
Связанный контент
- Управление окружениями Python в Visual Studio
- Выбор интерпретатора для проекта
- Пути поиска
- Справочная информация по окну "Окружения Python"





