В этом уроке мы узнаем, как мы можем создать пакет 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="[email protected]",
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-пакета. Здесь мы используем |
автор и 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. Загрузить в пункт
- Создание pypirc: Pypirc хранит файл хранилища информации PyPi. Создайте файл в домашнем каталоге
- для Windows :
C:\Users\UserName\.pypirc
- для * nix :
~/.pypirc
- для Windows :
- И добавьте следующий контент к нему. Замените
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 .