Как использовать библиотеки в Python, чтобы делать больше с меньшим количеством кода
Как и с другими языками программирования, Python имеет библиотеки, которые упрощают задачи программирования. Вот как вы можете воспользоваться ими и как вы можете создать свои собственные библиотеки.
Что такое библиотеки Python?
Библиотеки — это коллекции общего кода. Они распространены в Python, где их также называют «модулями», но они также повсеместны в других языках программирования. Библиотека определяет функции, которые любой программист может использовать в своих собственных программах, подобно тому, как публичная библиотека предлагает всем доступ к своим материалам.
Преимущество использования библиотек заключается в том, что вы можете сэкономить время и усилия, не создавая собственные решения. Библиотеки, как правило, лучше тестируются и отлаживаются, чем то, что вы могли бы придумать. Они также позволят вам сделать больше, чем вы могли бы сделать самостоятельно.
В Python существует много библиотек для таких задач, как графика, разработка игр и многое другое. Мои любимые библиотеки обычно связаны с анализом данных. Python особенно популярен в статистике и науке о данных благодаря большому количеству доступных библиотек для этих задач.
Как установить библиотеки Python
Существует несколько способов установки библиотек Python на вашу систему. Если вы используете дистрибутив Linux, то в менеджере пакетов вашего дистрибутива часто будут включены библиотеки Python. Например, в системах Debian и Ubuntu библиотеки часто начинаются с «python-» или «python3-«. Это установит библиотеку для всей системы, поэтому вам потребуется административный доступ.
Если у вас нет прав root или административного доступа на вашей системе, все равно есть способы установить библиотеки Python локально.
Вы можете использовать инструмент pip для установки библиотек Python, перечисленных в Индексе пакетов Python (PyPi).
Например, чтобы установить NumPy:
pip install numpy
Вы можете устанавливать библиотеки для каждого проекта в виртуальных средах с помощью утилиты virtualenv.
Вы можете развить концепции virtualenv, используя Mamba, что является моим любимым методом. Mamba — это инструмент, популярный среди научных работников и аналитиков, который позволяет создавать среду, специфичную для проекта.
У меня уже есть окружение Mamba для статистических вычислений, наполненное несколькими библиотеками, которые популярны для анализа данных. Я могу активировать его в командной строке:
mamba activate stats
Много библиотек Python будет поставляться с языком. Это предмет гордости для культуры Python. Стандартная библиотека Python содержит много модулей для всего — от взаимодействия с операционной системой до работы с временем и датами. Вот почему программисты на Python любят говорить, что язык ‘входит с батарейками’.
Импортирование целой библиотеки Python
Чтобы импортировать целую библиотеку Python в скрипте или в интерактивном режиме Python, используйте команду import.
Например, чтобы импортировать модуль NumPy, используйте эту команду:
import numpy
После импорта библиотеки вы можете получить доступ к функциям из этого модуля. Это похоже на то, если бы вы определили кучу функций. Функции импортируются в своем собственном пространстве имен. Это означает, что по умолчанию любые функции из библиотеки отделены от встроенных команд Python. Я покажу вам несколько способов изменить это, но поведение по умолчанию лучше в большинстве случаев.
Чтобы получить доступ к этим функциям, вы можете вызвать модуль, который вы только что импортировали. Это фактически объект, если вы понимаете, как работает объектно-ориентированное программирование. Эти функции являются методами, которые являются приватными для объекта, который мы только что создали, импортировав библиотеку.
Например, чтобы рассчитать арифметическое среднее или среднее значение массива с использованием NumPy, мы напишем это:
numpy.mean(numbers)
Это вызывает функцию mean в NumPy.
Вы можете подумать, что вводить "numpy" каждый раз, когда вы хотите получить доступ к функциям, — это много, и вы правы. Вы можете импортировать библиотеки под другими именами в качестве сокращения. Распространенный пример, который вы увидите с NumPy, — это сокращение названия до "np" в операторе импорта:
import numpy as np
Теперь вы можете обращаться к numpy как "np." Давайте перепишем ранее описанный расчет среднего:
np.mean(numbers)
Импортирование части библиотеки (только интерактивный Python!)
Во многих случаях, когда вы работаете в интерактивной секции Python, такой как стандартный интерактивный интерпретатор Python или IPython, вам часто захочется импортировать только одну или две функции из большой библиотеки, особенно если вы хотите использовать их несколько раз во время сессии. Это также легко сделать в Python.
Чтобы импортировать одну функцию из NumPy в главное пространство имен, вы можете использовать эту конструкцию:
from library import function
Например, чтобы импортировать функцию mean из NumPy:
from numpy import mean
Вы также можете импортировать несколько функций, разделяя их запятыми. Например, чтобы импортировать функции mean и median из NumPy:
from numpy import mean, median
С этими импортированными функциями вам не нужно будет предварять их с помощью «numpy» или «np.» Вы можете использовать их так, как если бы они были частью стандартных функций Python.
Например, чтобы вычислить среднее значение массива чисел
mean(numbers)
А медиана:
median(numbers)
Импортирование функций само по себе лучше подходит для интерактивных сессий Python, потому что это экономит время на ввод. Вы можете сделать это в скрипте, но это не рекомендуется. Вы можете случайно перезаписать пространство имен, которое используется для функции Python по умолчанию. Это может вызвать ошибку в вашем скрипте. Если вы попросите о помощи в интернете на форуме или в чате IRC, другие пользователи Python могут оказаться в затруднении. Вот почему вам следует избегать таких импортов в скриптах насколько это возможно.
Создание и импорт ваших собственных библиотек Python
Также легко импортировать свои собственные библиотеки Python. Вы можете сделать это, не будучи экспертом в Python. Все, что вам нужно, это текстовый редактор и умение использовать терминал.
Модули Python в конечном итоге представляют собой сборники функций, определённых на Python. Вы просто можете создать файл с расширением .py, так же как и при написании скрипта. Если вы создали свои собственные функции Python, вы можете поместить их в файл и импортировать, так же как и любые другие встроенные или установленные модули Python.
Чтобы импортировать модуль, убедитесь, что у него есть права на выполнение. Вы можете использовать команду chmod в системах, похожих на Unix, включая Linux и терминал macOS:
chmod +x my_library.py
Вы можете импортировать библиотеку, используя методы, описанные ранее. Если вы находитесь в той же директории, что и модуль, вы можете просто использовать операторы импорта. Например, для импорта библиотеки:
import my_library
Если библиотека находится в другой директории, есть несколько способов изменить путь поиска. Первый способ — использовать переменную окружения PYTHONPATH. Это список директорий, которые Python будет использовать для поиска модулей. Вы можете изменить это в своем системном оболочке либо в командной строке, либо в файле запуска, таком как .bashrc в Bash. Это список директорий, разделенных двоеточием (:), аналогично переменной окружения PATH в системах Linux.
В оболочке Linux вы можете просмотреть это с помощью команды echo:
echo $PYTHONPATH
Чтобы изменить это, лучше всего добавить это.
export PYTHONPATH="$PYTHONPATH:/path/to/my/modules"
Это обеспечит сохранение любого существующего пути поиска модулей перед добавлением вашего собственного каталога.
Вы также можете изменить путь поиска, используя встроенный модуль sys. Просто импортируйте его в интерактивной сессии Python:
import sys
Затем рассмотрите это:
sys.path
Чтобы добавить каталог в путь поиска, используйте метод append:
sys.path.append('/path/to/my/modules')
Поскольку между Python-скриптом и модулем или библиотекой нет четкого различия, вы можете легко преобразовать одно в другое. Хорошим стилем программирования является разделение операций на более мелкие функции. Вы также можете вызывать их из другого скрипта или интерактивной секции, но что если у вас есть скрипт? Вы можете просто определить операции скрипта в функции «main».
if __name__ == "__main__":
Это проверит, исполняет ли интерпретатор Python скрипт как скрипт, а не импортирует его. Вы можете затем поместить всё, что хотите, после этой секции для выполнения в скрипте, оставив функции для возможного импорта в другой скрипт или интерактивную сессию.
С возможностью использования модулей вы можете воспользоваться огромным количеством доступных модулей Python. Вы сможете сделать больше, чем вы когда-либо думали, что можете сделать сами. Вы сэкономите много времени и усилий по сравнению с кодированием с нуля.







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