Как использовать библиотеку в python
Перейти к содержимому

Как использовать библиотеку в python

  • автор:

Библиотеки

Для этого есть два ключевых слова — from и import. import нужен чтобы просто импортировать библиотеку, а from нужен чтобы импортировать что-то конкретное.

import math # Импортирование библиотеки math from random import randint # Импортирование из библиотеки random модуль randint 

Чтобы пользоваться, надо написать слово(), или же слово1.слово2()

Как создать библиотеку? [ ]

Здесь написано лишь про то как создать библиотеку. Если вы хотите узнать больше о классах и о самом ООП, то перейдите в статью о классах.

Для этого надо создать файл и написать там один или более классов. Можно также вставить лишь одну функцию, а можно просто переменную сделать там. Пример кода

# Предположим, что файл называется zoo.py # Переменные в классах называются полями. Функции в классах - модули. class Animals: dog = None snake = None elephant = None lion = None # self в модулях обязателен! def __init__(self, dog, snake, elephant, lion): # Благодаря __init__ можно просто написать Animals(значения) self.status(dog, snake, elephant, lion) self.get_data() def status(self, dog, snake, elephant, lion): # Ввод данных в поля self.dog = dog self.snake = snake self.elephant = elephant self.lion = lion def get_data(self): # Отправка сообщения. Необязательно, но можно print('Статус животных в зоопарке:', 'Собака - ' + str(self.dog), 'Змея - ' + str(self.snake), 'Слон - ' + str(self.elephant), 'Лев - ' + str(self.lion), sep='\n') # Дальше только для второго примера идёт some_variable_Animals = 'Некоторая переменная в Animals' def summa(a,b,c): return print(a + b + c) some_variable = 'Это текст в переменной some_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/' 
# Переходим к другому файлу (название неважно) from zoo import * # import * означает что импортируется всё из файла zoo. Без этого надо было бы писать ". import Animals", ". import summa" и т.д. Animals('Есть',True,'1','Нет') # print(some_variable_Animals) - При попытке вывести это выйдет ошибка summa(1, 5, 7) print(some_variable) # Если вы всё правильно написали, то выведится это: # Статус животных в зоопарке: # Собака - Есть # Змея - True # Слон - 1 # Лев - Нет # 13 # Это текст в переменной some_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/ 

Установка библиотек из pip [ ]

Для установки библиотеки нужно написать в консоль такую команду:

pip install модуля>

Для вывода всех установленных библиотек

Создание библиотеки 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 в Microsoft Fabric

Библиотеки предоставляют многократно используемый код, который вы можете включать в программы или проекты. Каждая рабочая область поставляется с предварительно установленным набором библиотек, доступных во время выполнения Spark и доступных непосредственно в определении задания Spark или записной книжки или Spark. Мы называем их встроенными библиотеками. Однако вам может потребоваться включить дополнительные библиотеки для сценария машинного обучения. В этом документе описывается, как использовать Microsoft Fabric для установки библиотек Python для рабочих процессов обработки и анализа данных.

Библиотеки Python в Microsoft Fabric

В Fabric есть 2 метода для добавления дополнительных библиотек Python.

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

Дополнительные сведения о веб-каналах и пользовательских библиотеках можно узнать, перейдя в документацию по управлению библиотеками в Fabric.

Установка библиотек рабочей области

Библиотеки уровня рабочей области позволяют специалистам по обработке и анализу данных стандартизировать наборы библиотек и версий для всех пользователей в рабочей области. Параметры библиотеки рабочей области определяют рабочую среду для всей рабочей области. Библиотеки, установленные на уровне рабочей области, доступны для всех записных книжек и определений заданий Spark в этой рабочей области. Так как эти библиотеки становятся доступными для сеансов, рекомендуется использовать библиотеки рабочей области, если вы хотите настроить общую среду для всех сеансов в рабочей области.

Только администратор рабочей области имеет доступ к обновлению параметров уровня рабочей области.

Чтобы установить библиотеки в рабочей области, выполните следующие действия.

  1. Выберите рабочие области в области навигации слева, чтобы найти и выбрать рабочую область. Эта рабочая область становится текущей рабочей областью.
  2. Выберите параметры рабочей области для текущей рабочей области.
  3. Выберите Инжиниринг данных/Science, чтобы открыть раскрывающийся список.
  4. Выберите управление библиотекой.

Screenshot showing the library management page for a workspace.

Параметры рабочей области можно использовать для установки веб-канала Python и пользовательских библиотек. Дополнительные сведения см . в статье об управлении библиотеками в Fabric.

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

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

В параметре рабочей области можно выполнить следующее:

  • Просмотр и поиск библиотеки веб-каналов. Список установленной библиотеки отображается при открытии панели управления библиотекой. В этом представлении можно увидеть имя библиотеки, версию и связанные зависимости. Вы также можете быстро найти библиотеку из этого списка.
  • Добавьте новую библиотеку веб-каналов. Вы можете добавить новую библиотеку веб-канала Python из PyPI или Conda. Например, если вы устанавливаете из PyPI:
    1. Выберите +Добавить из PyPI. Появится новая строка для добавления библиотеки.
    2. Начните вводить нужное имя библиотеки и выберите его в списке, который отображается, чтобы заполнить имя и версию. Например, можно выбрать imblearn и соответствующую версию. На этой странице можно добавить дополнительные библиотеки.
    3. По завершении нажмите кнопку «Применить «, чтобы установить все выбранные библиотеки в рабочую область.

Screenshot showing how to install a library directly into the workspace.

Чтобы отправить список библиотек одновременно, можно также отправить .yml файл, содержащий необходимые зависимости.

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

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

Установка в строке

При разработке модели машинного обучения или выполнении нерегламентированного анализа данных может потребоваться быстро установить библиотеку для сеанса Apache Spark. Для этого можно использовать встроенные возможности установки, чтобы быстро приступить к работе с новыми библиотеками.

Установка в строке влияет только на текущий сеанс записной книжки. Это означает, что новый сеанс не будет включать пакеты, установленные в предыдущих сеансах.

Мы рекомендуем разместить все команды в строке, которые добавляют, удаляют или обновляют пакеты Python в первой ячейке записной книжки. Изменение пакетов Python будет эффективным после перезапуска интерпретатора Python. Переменные, определенные перед запуском ячейки команды, будут потеряны.

Установка библиотек веб-канала Python в записной книжке

Команда %pip в Microsoft Fabric эквивалентна часто используемой команде pip во многих рабочих процессах обработки и анализа данных. В следующем разделе показаны примеры использования %pip команд для установки библиотек веб-каналов непосредственно в записную книжку.

    Выполните следующие команды в ячейке кода записной книжки, чтобы установить библиотеку и vega_datasets:

%pip install altair # install latest version through pip command %pip install vega_datasets # install latest version through pip command 
import altair as alt from vega_datasets import data 

При установке новых библиотек Python команда %conda install обычно занимает больше времени, чем %pip install, так как она проверка полные зависимости для обнаружения конфликтов. Вы можете использовать %conda install , если вы хотите избежать потенциальных проблем. Используйте %pip install, если вы уверены в библиотеке, которую вы пытаетесь установить , не конфликтует с предварительно установленными библиотеками в среде выполнения.

Управление пользовательскими библиотеками Python с помощью встроенной установки

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

  1. Перейдите в Lakehouse и выберите . в папке «Файл «.
  2. Затем отправьте пользовательский Python jar или wheel библиотеку.
  3. После отправки файла можно использовать следующую команду, чтобы установить пользовательскую библиотеку в сеанс записной книжки:

# install the .whl through pip command %pip install /lakehouse/default/Files/wheel_file_name.whl 

Следующие шаги

  • Управление параметрами рабочей области: параметры администрирования рабочей области Apache Spark
  • Управление библиотеками в Fabric: управление библиотеками в документации по Fabric

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

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