Перейти к содержимому

Как создать библиотеку python примеры

  • автор:

Создание библиотеки Python: полный гайд

Это моя первая статья на Хабр’е и в ней я вам расскажу о том, как создать свою библиотеку Python и загрузить её на PyPi. Давайте начнём.

Капельку определений

PyPI — каталог программного обеспечения, написанного на языке программирования Python. Фактически это хранилище открытых библиотек для языка Python. Каждый может скачать и использовать библиотеку или создать и загрузить свою. По состоянию на февраль 2020 года содержит более 216 000 пакетов.

Каждый раз, когда вы используете команду pip install вы загружаете модуль с PyPi. Ок, я думаю, что с этим разобрались, идем дальше.

Для чего вам нужна своя библиотека?

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

Что вам нужно для создания библиотеки?

  • Код с функциями, которые вы планируете использовать.
  • Набор пакетов для создания и публикации (setuptools, wheel и twine).
  • Аккаунт PyPI (и его API токен — опционально, но об этом позже).
  • Желание и терпение.

Подготовка

Ок, мы разобрались с тем, что нам нужно для создания библиотеки, теперь давайте по порядку, начнём с кода и его грамотного оформления.

Для начала, после того как у вас появилась идея, реализуйте всё в отдельном файле и уже потом разбейте на соответствующую структуру (об этом позже). Для примера я буду использовать код класса быстрого взаимодействия с файлами и библиотеку PyDeepLib (возможно позже я напишу об этом статью). Вы можете установить каждую из библиотек командами pip install PyDeepLib и pip install speedfile соответственно. Проекты так же доступны на GitHub (PyDeepLib, speedfile).

Итак, давайте начнём с установки необходимых нам библиотек. Откройте PyCharm (я рекомендую вам использовать именно его, но если у вас его нет, то можете использовать любой другой редактор кода). Создайте новый проект с виртуальным окружением и установите пакеты о которых говорилось раньше ( setuptools , wheel и twine ), используя команду pip install setuptools wheel twine.

Теперь создадим корневую папку для нашего проекта, а в ней файлы setup.py , setup.cfg и папку с таким же названием как корневая.

Файлы нашего проекта на этом этапе должны выглядеть вот так:

Файлы проекта

Как вы можете заметить я поместил все модули проекта в папку PyDeepLib, её название обязательно должно совпадать с корневой.

Регистрация на PyPi

Я не очень хочу подробно на этом останавливаться, но я это сделаю:

Для регистрации на PyPi вам нежно перейти на сайт pypi.org и нажать на кнопку зарегистрироваться:

pypi.org

После этого все стандартно:

Имя, почта, username и пароль. Я думаю вы с этим справитесь.

Файлы setup.py и setup.cfg

Теперь займёмся кодом, который будет устанавливать нашу библиотеку. Для начала откройте файл setup.py . Теперь напишем в него такой код:

from setuptools import setup, find_packages def readme(): with open('README.md', 'r') as f: return f.read() setup( name='speedfile', version='0.0.1', author='yarik_g', author_email='example@gmail.com', description='This is the simplest module for quick work with files.', long_description=readme(), long_description_content_type='text/markdown', url='your_url', packages=find_packages(), install_requires=['requests>=2.25.1'], classifiers=[ 'Programming Language :: Python :: 3.11', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent' ], keywords='files speedfiles ', project_urls=< 'GitHub': 'your_github' >, python_requires='>=3.6' )

Итак, сначала мы создаём функцию readme , она нужна для чтения README.md файла (я расскажу как создать его максимально быстро и просто позже). И затем мы вызываем функцию setup , в которую нам надо передать некоторое число параметров, о них поговорим подробнее:

  • name — название вашей библиотеки.
  • version — версия. Когда будете обновлять библиотеку, версию обязательно надо изменить.
  • author — автор проекта
  • author_email — электронная почта (желательно та, на которую регистрировали аккаунт на PyPi).
  • description — короткое описание.
  • long_description — подробное описание пакета. В данном случае получение содержимого файла README.md.
  • long_description_content_type — разметка, используемая в подробном описании. У нас — markdown.
  • url — ссылка на страницу пакета. Я там указал ссылку на GitHub проекта.
  • packages — список пакетов, которые должны опубликоваться. Для удобства я использовал функцию find_packages.
  • install_requires — дополнительные библиотеки, которые будут установлены вместе с пакетом.
  • classifiers — метаданные о пакете.
  • keywords — ключевые слова (через пробел).
  • project_urls — дополнительные ссылки пакета.
  • python_requires — требуемая версия Python.

Отлично, надеюсь, что с этом мы разобрались. Теперь надо отредактировать файл setup.cfg . Если коротеничко, открываем его и вставляем это:

[egg_info] tag_build = tag_date = 0

В нашем случае проект очень простой и не требует никакой дополнительной конфигурации.

Основные файлы

Итак, давайте снова вернёмся к файлам проекта PyDeepLib, и рассмотрим устройство файлов модуля.

Ещё раз файлы проекта.

В папке с кодом проекта обязательно должен быть файл с названием __init__.py . Система ищет его по умолчанию и в нём обычно просто импортируют остальные модули. Вот пример того, как это может выглядеть:

Пример файла инициализации проекта

Как видите в нём почти нет кода, только import’ы, весь остальной код же разбит по отдельным файлам. Это намного удобнее чем держать весь код в одном файле, однако к примеру в проекте speedfile весь код располагался в этом основном файле, но там он был небольшим и запутаться там было сложно:

Фрагмент файла инициализации из speedfile

Я думаю, что это всё что надо знать про разбиение кода на модули.

Создание README файла. Красиво и быстро.

У каждой библиотеки должна быть своя документация или хотя-бы описание. Обычно для этого используют README.md файлы. Логично предположить, что для полноты картины нам тоже следует сделать такой файл для библиотеки. Для создания .md файла мы будем использовать редактор markdown файлов, с говорящим названием MarkDownPad2.

Итак, для начало надо скачать редактор (при желании этот пункт можно пропустить. Вы можете редактировать .md файлы прямо в PyCharm или в любом текстовом редакторе, сохранив файл с соответствующим расширением).

Переходим на сайт markdownpad.com и видим, что существует две версии этого редактора, markdownpad free и markdownpad pro. Для наших задач нам вполне хватит бесплатной версии, поэтому жмём на кнопку скачать:

markdownpad.com

После этого начнётся загрузка и потом останется только установить редактор. Я думаю что вы с этим справитесь, но если что, то на сайте есть инструкция:

Установка MDPad

Ок, надеюсь что вы установили редактор. Теперь давайте его запустим:

Фактически, типичное окно редактора текста/кода, каковым MarkDownPad фактически и является. Дальше принцип простой: просто пишем в файл всё то, что вам необходимо иметь в README файле для вашего проекта и применяете инструменты форматирования, такие как: код, цитата, ссылка, заголовок, список и т.д. Я думаю, что самостоятельно разобраться с markdown разметкой будет не очень сложно, но если что, то вот вам полезная статья с наглядным руководством по markdown.

Для примера я просто дам вам код README.md файла библиотеки speedfile:

# Speed File Library # ## What is this? ## The module allows you to work with files in just one line of code, without the need to manually open and close the file each time ## Quick Guide ## The module is based on the following structure: f = open('data.txt') data = f.readlines() f.close() Which Python provides by standard. ---------- ### Using ### Using the library is as simple and convenient as possible: Let's import it first: First, import everything from the library (use the `from `. ` import *` construct). Examples of all operations: Writing the contents of an entire file to a variable using the `read()` function: temp = File(path='test.txt').read() Writing the contents of an entire file to a variable line by line using the `readlines()` function: temp = File(path='test.txt').readlines() Write only the first line from a file using the `readline()` function: temp = File(path='test.txt').readline() Writing data from a variable to a file using write() (overwriting or creating a file): temp = "Test data" File(path='test.txt', data=temp).write() Adding data from a variable to a file using write() (or creating a file): temp = "Test data" File(path='test.txt', data=temp).add() ---------- ## Developer ## My site: [link](https://y-a-r-i-k.github.io/) 

И то, как он выглядит на GitHub:

Speedfile на GitHub

Я надеюсь, вы здесь разберётесь)).

Публикация пакета

Ок, если вы выполнили все предшествующие шаги, но вы готовы к публикации пакета. Итак, переходим к делу:

Открываем терминал или используем встроенный в PyCharm (или редактор кода, который вы используете). Переходим в корневую директорию проекта и пишем:

python setup.py sdist bdist_wheel

После этого создадутся несколько новых папок. Теперь мы готовы к собственно загрузке модуля на PyPi. Пишем это в терминал:

twine upload --repository pypi dist/*

После этого вас попросят ввести ваш usrename и пароль. И на этом моменте хотелось бы остановиться подробнее. Когда вы будете регистрироваться на PyPi вас скорее всего попросят (в добровольно-принудительном порядке) подключить второй фактор защиты. Если вы это уже сделали, то просто указать username и пароль у вас не получится, это вызовет ошибку.

Как же это решить? Очень просто. Вам нужно получить ваш API токен для PyPi.

  1. Переходим в настройки учётной записи:

  1. Крутим вниз до пункта с API-токенами и жмём добавить токен:

  1. Далее вас попросят назвать токен и выбрать область его действия:

  1. И последним шагом вам дадут ваш новый токен. Сразу сохраните его у себя на компьютере, потому что как следует из предупреждения вы видите его в первый и последний раз:

Итак, обратно выгрузке проекта: теперь в поле для ввода username вам надо указать __token__ а туда где должен быть пароль — ваш API-токен (рекомендую использовать пункт paste или вставить из контекстного меню, так так Ctrl + V может сработать не корректно). После этого жмём Enter и ждём. После завершения загрузки вам дадут ссылку на страницу с вашей библиотекой.

Страница будет выглядеть стандартно, например вот страница PyDeepLib:

PyDeepLib

Ну, и на этом всё, поздравляю! Вы создали и загрузили свою первую библиотеку на PyPi.

От автора:

Спасибо, что дочитали статью до конца, надеюсь она была вам полезна и сэкономила вам время. Если хотите повлиять на выход дальнейших статей, то можете подписаться на мой telegram-канал, там в том числе будут опросы касаемо выходов новых статей. Если хотите со мной связаться или предложить тему для статьи — мои контакты есть на сайте.

Ещё раз спасибо, что дочитали до сюда!

Как создать и использовать динамические библиотеки в Python

Узнайте, как создавать и использовать динамические библиотеки в Python для повышения эффективности и организации кода.

Алексей Кодов
Автор статьи
23 июня 2023 в 19:01

Динамические библиотеки являются важным элементом в программировании, так как они позволяют разделять и повторно использовать код между различными проектами. В этой статье мы рассмотрим, как создать и использовать динамические библиотеки в Python. ��

Создание динамической библиотеки

Для начала, создадим простую функцию, которую мы хотим разместить в динамической библиотеке. Вот пример функции, которая возвращает сумму двух чисел:

def add(a, b): return a + b

Теперь, сохраним эту функцию в файле с именем my_library.py . Этот файл будет нашей динамической библиотекой.

Использование динамической библиотеки

Чтобы использовать функцию add из нашей динамической библиотеки my_library.py , нужно импортировать ее в другой файл. Вот пример, как это сделать:

from my_library import add result = add(3, 5) print(result) # Вывод: 8

В этом примере мы импортировали функцию add из библиотеки my_library и использовали ее для сложения двух чисел.

Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Управление зависимостями

Важным аспектом работы с динамическими библиотеками является управление зависимостями. Если ваша библиотека зависит от других библиотек, вам необходимо указать это в файле requirements.txt .

Пример содержимого файла requirements.txt :

numpy==1.19.2 pandas==1.1.3 

Таким образом, другие разработчики смогут легко установить все необходимые зависимости, используя команду:

pip install -r requirements.txt 

Вывод

В этой статье мы узнали, как создать и использовать динамические библиотеки в Python. Это полезный инструмент для организации и повторного использования кода в ваших проектах. Не забывайте структурировать свои библиотеки, управлять зависимостями и использовать хорошие практики программирования! ��

Если вам нужна дополнительная помощь или обучение по работе с Python, рекомендуем обратиться в онлайн-школу.

Самые популярные библиотеки Python

Библиотеки в программировании: мощный иструмент для создания чистого кода

Моё мнение про Python

IDE и редакторы кода для Python

Php vs Python. Что выбрать?

Python — простой и гибкий язык программирования, но его настоящая сила заключается в его библиотеках. Библиотеки Python представляют собой ценные инструменты, которые значительно упрощают разработку программного обеспечения. Они предлагают набор готовых модулей и функций, которые помогают решать различные задачи, от создания графиков и игр до парсинга веб-страниц. В этой статье мы рассмотрим важность и применение библиотек Python, а также научимся устанавливать и использовать их в своих проектах.

Обзор популярных библиотек Python

Python предлагает огромное количество библиотек, которые позволяют сделать жизнь программистов проще и интереснее. Давайте рассмотрим некоторые из них и их применение:

  • NumPy — для работы с многомерными массивами и выполнения математических операций.
  • Pandas — предоставляет структуры данных, такие как DataFrame, которые позволяют нам удобно обрабатывать, анализировать и манипулировать таблицами данных.
  • Matplotlib — если вы хотите создать красивые графики и визуализации.
  • TensorFlow — если вы хотите погрузиться в мир машинного обучения и создания нейронных сетей.
  • Beautiful Soup — если вам нужно извлечь данные из HTML или XML файлов.
  • Pygame — если вы мечтаете о создании своей собственной игры.

Это лишь некоторые из популярных библиотек Python. Всего их гораздо больше, и каждая из них предлагает свои уникальные возможности и применение.

Установка библиотек Python

Установка библиотек Python — достаточно простой процесс:

  1. Убедитесь, что у вас установлен Python на компьютере. Если нет, загрузите и установите его с официального сайта.
  2. Откройте командную строку или терминал.
  3. Введите команду «pip install имя_библиотеки» для установки нужной библиотеки. Например, «pip install numpy» для установки NumPy. Нажмите Enter и дождитесь завершения установки.
  4. Если у вас есть файл с зависимостями (requirements.txt), используйте команду «pip install -r requirements.txt», чтобы установить все библиотеки из файла.
  5. Чтобы установить конкретную версию библиотеки, укажите ее в команде установки. Например, «pip install numpy==1.19.2» установит версию 1.19.2 NumPy.

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

���� Приглашаем Вас на курс Python Start с нуля: Онлайн обучение

��‍�� Кому подходит этот курс:

  • Для тех, кто мечтает стать разработчиком Python, даже без опыта.
  • Для всех, кто хочет создавать программы и приложения.

�� Начальные требования: Свободное владение компьютером и английский на уровне чтения.

�� Длительность: 2-4 недели.

�� Стоимость курса: 2 450 грн / 80 USD

�� Бонус: Скидка -10% на первый месяц менторинга Python после прохождения курса Python Start.

�� Регистрируйтесь сегодня и начните свой путь в мире Python!

Библиотеки для работы с графикой

Если вы хотите добавить вау-эффекты к вашим проектам или создать впечатляющие визуализации данных, библиотеки для работы с графикой в Python помогут вам в этом. Предлагаем несколько популярных библиотек и примеры их использования:

  • Matplotlib — популярная библиотека для графиков и визуализаций в Python. Она предлагает разнообразные стили и типы графиков: линейные, столбчатые, круговые диаграммы, тепловые карты и другие. Вы можете настраивать цвета, метки и оси для создания профессиональных графиков. Например, вы можете отобразить график продаж по месяцам или визуализировать распределение данных. Также можно создать столбчатую диаграмму для отображения доходов разных отделов компании.
  • Seaborn — библиотека, основанная на Matplotlib, предлагает удобные функции для создания стильных и информативных графиков. Она включает готовые темы оформления, делающие графики привлекательными и профессиональными. Также в Seaborn есть специальные функции для статистических графиков, включая диаграммы разброса и ящики с усами. Используя Seaborn и ящики с усами, вы сможете сравнивать доходы между группами клиентов и выявлять закономерности и различия в их распределении. Это полезно при принятии маркетинговых решений, например, анализе доходов по сегментам клиентов и определении наиболее привлекательных групп для целевых маркетинговых стратегий.
  • Plotly — библиотека, предлагающая интерактивные графики и визуализации, встраиваемые в веб-страницы и интерактивные приложения. Она поддерживает различные типы графиков: линейные, столбчатые, разброса, поверхности и др. Вы можете добавлять интерактивные элементы, такие как навигация, выбор данных и инструменты масштабирования. Например, можно создать интерактивную карту с точками, представляющими города, а цвет каждой точки будет отражать среднюю температуру. Пользователи смогут навести курсор, чтобы получить подробную информацию о температуре в каждом городе.

From Zero to Hero

  • Pillow — предоставляет возможности для работы с изображениями. Вы можете открывать, изменять размер, сохранять и применять различные эффекты к изображениям. Например, вы можете создать программу для обработки фотографий, добавить фильтры или изменить цветовую палитру. Предположим, у вас есть фотография, которую вы хотели бы обработать. С помощью Pillow вы можете изменить размер фотографии, применить фильтр для создания эффекта черно-белого изображения и сохранить результат. Это полезно, если вам нужно подготовить фотографии для веб-страницы или печати.
  • OpenCV — отличная библиотека для работы с компьютерным зрением и обработки видео. Она предоставляет мощные функции для обработки и анализа изображений. Можно распознавать объекты, извлекать признаки, применять фильтры и многое другое. OpenCV широко используется в области компьютерного зрения, робототехники и автоматического видеоанализа. Например, для создания системы слежения за движением можно использовать OpenCV для анализа видеопотока с веб-камеры. Можно обнаруживать движущиеся объекты, выделять их границы и отслеживать их положение в режиме реального времени. Это полезно для систем видеонаблюдения или интерактивных игр.

Это лишь некоторые из библиотек Python для работы с графикой. Выберите ту, которая наиболее соответствует вашим потребностям и начните создавать потрясающие графики и визуализации!

Библиотеки для создания игр

Если вас когда-нибудь манила мысль создать свою собственную игру, то хорошая новость в том, что в Python есть несколько отличных библиотек, которые помогут вам воплотить вашу идею в жизнь:

Библиотеки Python для создания игр

Похожие материалы
Библиотеки в программировании: мощный иструмент для создания чистого кода
Моё мнение про Python
IDE и редакторы кода для Python
Php vs Python. Что выбрать?
Что такое библиотеки в Python и зачем они нужны?

Библиотеки в Python — это предварительно написанные модули, которые можно включить в свою программу. Они экономят время, предоставляя готовые функциональные решения.

Какие библиотеки наиболее популярны для анализа данных?

Для анализа данных часто используются Pandas, NumPy и Matplotlib. Pandas хорош для работы с табличными данными, NumPy — для математических операций, а Matplotlib — для визуализации.

Как установить библиотеку в Python?

Обычно библиотеки устанавливаются через менеджер пакетов pip. Команда в командной строке будет выглядеть примерно так: pip install имя_библиотеки.

Есть ли стандартные библиотеки в Python?

Да, Python идет с большой стандартной библиотекой, которая предлагает модули для разнообразных задач, от работы с файлами до сетевых операций.

Что такое веб-фреймворки и какие из них на Python?

Веб-фреймворки — это библиотеки для разработки веб-приложений. В Python популярны Django и Flask. Django предлагает много «из коробки», в то время как Flask дает больше гибкости.

Какую библиотеку выбрать для машинного обучения?

Scikit-learn — отличный выбор для стандартных задач машинного обучения. Если речь идет о нейронных сетях, стоит обратить внимание на TensorFlow и PyTorch.

Как создать библиотеку python примеры

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

1. Создаём элементы библиотеки

Публикация пакета требует знания некоторых деталей. В этом примере мы будем рассматривать предварительно опубликованный пакет под названием dist_alx . Чтобы вам было удобнее сверяться, эта директория доступна в виде zip-папки в репозитории на GitHub.

Каталог содержит все необходимые элементы, которые должен иметь пакет перед публикацией. Мы будем использовать этот пример в качестве эталона, поскольку все пакеты Python должны иметь одинаковую структуру. Если вам интересно, что именно делает пакет dist_alx , это объяснено там же в README-файле.

Корневой каталог dist_alx содержит следующие файлы и директории:

  • setup.py – содержит метаданные пакета,
  • setup.cfg – конфигурационный файл, используемый для хранения настроек,
  • подпапку с тем же именем, что и родительская папка (в данном примере dist_alx ), где хранится фактический код вашего пакета на Python.

Подробнее об указанных файлах можно прочитать в документации библиотеки setuptools. Примеры содержания файлов в нашем случае:

Скриншот окна регистрации в репозитории PyPI

4. Публикуем библиотеку

Публикация осуществляется из командной строки или терминала. Команды идентичны в Windows и Linux.

Для публикации нам потребуется установить две библиотеки – setuptools и twine :

Как опубликовать свою Python библиотеку на PyPI

Развёртываем пакет запустив setup.py :

Как опубликовать свою Python библиотеку на PyPI

Обратите внимание, что теперь в родительской папке будут созданы две новых директории ( egg-info и dist ).

Как опубликовать свою Python библиотеку на PyPI

Теперь с помощью twine развёртываем пакет на PyPI:

Как опубликовать свою Python библиотеку на PyPI

Здесь нужно указать своё имя пользователя и пароль PyPI.

Как опубликовать свою Python библиотеку на PyPI

Вуаля! Пакет размещён на сервере и готов к использованию!

Переходим в учётную запись на PyPI, идём в раздел Your projects. Если всё в порядке, вы увидите библиотеку.

Как опубликовать свою Python библиотеку на PyPI

Обратите внимание, что PyPI не поддерживает на сайте символ подчёркивания в именах файлов. Поэтому dist_alx отображается как dist-alx . Однако это не влияет на использование библиотеки – при последующем импорте мы будем вводить, как и задумано, dist_alx .

5. Используем

Переходим к любимому клиенту Python (например, Jupyter) и устанавливаем пакет с помощью pip . Импортируем и пользуемся в своё удовольствие!

Как опубликовать свою Python библиотеку на PyPI

Заключение

Прежде чем размещать пакет на главном сервере, опубликуйте его сначала на тестовом сервере PyPI.

Итак, последовательность создания библиотеки Python следующая:

  1. Изготовление необходимых элементов упаковки, проверка значений параметров.
  2. Подготовка кода пакета.
  3. Создание учётной записи PyPI (если её ещё не было).
  4. Публикация пакета на PyPI.
  5. Тестирование: pip-установка, импорт и запуск модуля.

Если вы думаете, что пока не готовы публиковать свою библиотеку, вам могут быть полезны такие наши публикации:

  • Погружаемся в основы и нюансы тестирования Python-кода
  • Инструменты для анализа кода Python. Часть 1
  • Инструменты для анализа кода Python. Часть 2
  • Python: практики для написания эффективного кода

Источники

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *