Статьи

Создайте свой первый пип пакет

В этом уроке мы узнаем, как мы можем создать пакет Python / pip. Если ваши требования соответствуют любому из них, этот учебник для вас.

  • Вы хотите сделать вашу платформу независимой.
  • Вы не хотите копировать свой исполняемый скрипт в каждую нужную вам систему.
  • Вы хотите сделать свои скрипты Python общедоступными для всех и хотите помочь сообществу.

Мы используем pip для достижения того же. После этого урока мы сможем легко установить скрипт Python (входит в пакет pip) на любой системе. Код этого урока доступен на GitHub здесь и pip package здесь

Примечание.  Проверено на Python 2 и Python 3 для * nix и windows.

1. Зарегистрируйся

Сообщество Python поддерживает репозиторий, аналогичный npm,  для пакетов с открытым исходным кодом. Если вы хотите сделать свой пакет общедоступным, вы можете загрузить его на PyPi. Итак, прежде всего, зарегистрируйтесь на PyPi:  https://pypi.org/account/register/ .

Я предполагаю, что у вас есть  учетная запись GitHub, куда вы будете загружать код пакета. Если вы хотите сохранить свой пакет закрытым, вы можете пропустить этот шаг. Мы будем использовать README.md непосредственно из вашего проекта GitHub для этого руководства, и оно будет использоваться в качестве документации вашего пакета. 

2. Проверка необходимых инструментов

Убедитесь, что в вашей системе установлены Python и pip. Чтобы проверить установки:

python -V  # for python version (2/3)
python -m pip --version 

Вышеуказанные команды должны дать вам правильные выходные данные версии. Если нет, установите Python и pip в вашей системе.

Установите необходимые пакеты:

  • Setuptools:  Setuptools  — это библиотека процессов разработки пакетов, предназначенная для создания и распространения пакетов Python.
  • Колесо : пакет Колесо предоставляет  bdist_wheel команду для  setuptools. Он создает файл .whl, который можно напрямую установить с помощью  pip install команды. Затем мы загрузим этот же файл на pypi.org .
  • Twineпакет Twine  обеспечивает безопасное, аутентифицированное и проверенное соединение между вашей системой и PyPi через HTTPS .
  • Tqdm : это интеллектуальный индикатор прогресса, используемый Twine для внутреннего использования.
sudo python -m pip install --upgrade pip setuptools wheel
sudo python -m pip install tqdm
sudo python -m pip install --user --upgrade twine

3. Настройте свой проект

  • Создать пакет скажем dokr_pkg.Название изображения
  • Создайте свой исполняемый файл в пакете, скажем,  dokr. Создать скрипт и без расширений ( dokr).
#!/usr/bin/env python

echo "hey there, this is my first pip package"
  • Сделайте ваш скрипт исполняемым.
chmod +x dokr

 

  •  Создайте установочный файл setup.py  в вашем пакете. Этот файл будет содержать всю информацию о метаданных вашего пакета. 
import setuptools

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


setuptools.setup(
     name='dokr',  
     version='0.1',
     scripts=['dokr'] ,
     author="Deepak Kumar",
     author_email="deepak.kumar.iet@gmail.com",
     description="A Docker and AWS utility package",
     long_description=long_description,
   long_description_content_type="text/markdown",
     url="https://github.com/javatechy/dokr",
     packages=setuptools.find_packages(),
     classifiers=[
         "Programming Language :: Python :: 3",
         "License :: OSI Approved :: MIT License",
         "Operating System :: OS Independent",
     ],
 )

Ниже приведена информация метаданных:

Meta-Data

Описание

имя

Название вашей посылки. 

версия

Текущая версия вашего пакета.

скрипты

Список исполняемых файлов. Рекомендуется, чтобы они оставались такими же, как и у вашего pip-пакета. Здесь мы используем  dokr.

автор и author_email

Имя и адрес электронной почты автора.

описание

Краткое описание пакета.

длинное описание

Описание пакета.

long_description_content_type

Более длинное описание. Вот это уценка. Мы выбираем README.md для длинного описания.

пакеты

Используйте для других зависимостей пакета.

классификаторы

Содержит все классификаторы вашего проекта.

  • Добавьте  ЛИЦЕНЗИЮ в свой проект, создав файл с именем ЛИЦЕНЗИЯ. Образец лицензии доступен здесь .

4. Компиляция вашего пакета

Перейдите в папку пакета и выполнить следующую команду:  python setup.py bdist_wheel. Это создаст такую ​​структуру:

Название изображения

  • build : сборка информации о пакете.
  • dist : Содержит ваш файл .whl. WHL файл  представляет собой пакет сохраняется в  колесах  формата, который является стандартным форматом встроенного пакета используется для  Python  распределений. Вы можете напрямую установить файл .whl, используя  pip install some_package.whl в своей системе
  • project.egg.info : пакет egg содержит скомпилированный байт-код, информацию о пакете, ссылки на зависимости и захватывает информацию, используемую тестовой командой setup.py при запуске тестов.

5. Установите на свой локальный компьютер

Если вы хотите протестировать свое приложение на локальном компьютере, вы можете установить файл .whl с помощью pip:

python -m pip install dist/dokr-0.1-py3-none-any.whl

6. Загрузить в пункт

  1. Создание pypirc: Pypirc  хранит файл хранилища информации PyPi. Создайте файл в домашнем каталоге
     

    1. для Windows :  C:\Users\UserName\.pypirc 
    2. для * nix :   ~/.pypirc 
  2. И добавьте следующий контент к нему. Замените  javatechy на ваше имя пользователя.
[distutils] 
index-servers=pypi
[pypi] 
repository = https://upload.pypi.org/legacy/ 
username =javatechy

3. Чтобы загрузить файл dist / *. Whl в PyPi, используйте Twine:

python -m twine upload dist/*

Эта команда загрузит ваш пакет на PyPi. Этот учебный пакет доступен здесь.

7. Заключение

Мы узнали, как установить и создать пакет pip и сделать его доступным для всех. Этот пакет может быть легко установлен на любой машине с pip с помощью следующих команд:

Название изображения

Исходный код можно найти на  GitHub,  а пакет pip — на PyPi


Если вам понравился этот пост, ознакомьтесь со статьей Дипака о докеризации Spring Boot Application .