Как импортировать модули в Python 3

Введение

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

  • print(), которая выводит выражения
  • abs(), которая возвращает абсолютное значение числа
  • int(), которая преобразует другой тип данных в целое число
  • len(), которая возвращает длину последовательности или коллекции

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

Модули – это файлы Python с расширением .py, состоящие из кода Python. Любой файл Python может быть ссылкой на модуль. Файл Python с именем hello.py имеет имя модуля hello, который может быть импортирован в другие файлы Python или использован в интерпретаторе командной строки Python. Вы можете узнать о создании собственных модулей, прочитав Как писать модули в Python 3.

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

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

Когда Python импортирует модуль с именем hello, например, интерпретатор сначала ищет встроенный модуль с именем hello. Если встроенный модуль не найден, интерпретатор Python затем ищет файл с именем hello.py в списке каталогов, который он получает из переменной sys.path.

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

Предварительные требования

Вы должны иметь установленный Python 3 и настроенную среду программирования на вашем компьютере или сервере. Если у вас нет настроенной среды программирования, вы можете обратиться к руководствам по установке и настройке для локальной среды программирования или для среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).

Проверка и установка модулей

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

Информация: Для следования примерам кода в этом руководстве откройте интерактивную оболочку Python на вашей локальной системе, запустив команду python3. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>.

Чтобы проверить, что эти модули Python готовы к использованию, войдите в свою локальную среду программирования Python 3 или среду программирования на основе сервера и запустите интерпретатор Python в командной строке следующим образом:

  1. python

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

  1. import math

Поскольку math является встроенным модулем, ваш интерпретатор должен выполнить задачу без отзыва, вернувшись к приглашению. Это означает, что вам не нужно ничего делать, чтобы начать использовать модуль math.

Давайте выполним оператор import с модулем, который может быть у вас не установлен, например, с библиотекой для построения 2D-графиков matplotlib:

  1. import matplotlib

Если matplotlib не установлен, вы получите ошибку вроде этой:

Output
ImportError: No module named 'matplotlib'

Вы можете выйти из интерпретатора Python с помощью CTRL + D, а затем установить matplotlib с помощью pip.

Затем мы можем использовать pip, чтобы установить модуль matplotlib:

  1. pip install matplotlib

После его установки вы можете импортировать matplotlib в интерпретатор Python, используя import matplotlib, и он завершится без ошибок.

Импорт модулей

Чтобы воспользоваться функциями в модуле, вам нужно импортировать модуль с помощью оператора import.

Оператор import состоит из ключевого слова import вместе с именем модуля.

В файле Python это будет объявлено в верхней части кода, под любыми строками шебанга или общими комментариями.

Таким образом, в файле программы Python my_rand_int.py мы импортируем модуль random для генерации случайных чисел следующим образом:

my_rand_int.py
import random

Когда мы импортируем модуль, мы делаем его доступным для нас в нашей текущей программе как отдельное пространство имен. Это означает, что нам придется обращаться к функции с помощью точечной нотации, как, например, [module].[function].

На практике, на примере модуля random, это может выглядеть таким образом:

  • random.randint(), который вызывает функцию для возврата случайного целого числа, или
  • random.randrange(), который вызывает функцию для возврата случайного элемента из указанного диапазона.

Давайте создадим for цикл, чтобы показать, как мы будем вызывать функцию модуля random в нашей программе my_rand_int.py:

my_rand_int.py
import random


for i in range(10):
    print(random.randint(1, 25))

Эта небольшая программа сначала импортирует модуль random на первой строке, затем переходит к for циклу, который будет работать с 10 элементами. Внутри цикла программа будет печатать случайное целое число в диапазоне от 1 до 25 (включительно). Целые числа 1 и 25 передаются в random.randint() в качестве его параметров.

Когда мы запускаем программу с python my_rand_int.py, мы получим 10 случайных целых чисел в качестве вывода. Поскольку они случайные, вы скорее всего получите разные целые числа каждый раз, когда запускаете программу, но они будут генерировать что-то вроде этого:

Output
6 9 1 14 3 22 10 1 15 9

Целые числа не должны быть меньше 1 или больше 25.

Если вы хотите использовать функции из более чем одного модуля, вы можете сделать это, добавив несколько операторов import:

my_rand_int.py
import random
import math

Вы можете видеть программы, которые импортируют несколько модулей с разделенными запятыми – как, например, import random, math, – но это не согласуется с PEP 8 Style Guide.

Чтобы воспользоваться нашим дополнительным модулем, мы можем добавить константу pi из math в нашу программу и уменьшить количество выводимых случайных целых чисел:

my_rand_int.py
import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

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

Output
18 10 7 13 10 3.141592653589793

Оператор import позволяет импортировать один или несколько модулей в вашу программу на Python, позволяя вам использовать определения, созданные в этих модулях.

Использование fromimport

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

В этой конструкции вы можете указать, на какие определения напрямую ссылаться.

В других программах вы можете видеть, что оператор import принимает ссылки на все определения в модуле, используя звездочку (*) как шаблон, но это не рекомендуется в PEP 8.

Давайте сначала рассмотрим импорт одной конкретной функции, randint() из модуля random:

my_rand_int.py
from random import randint

Здесь мы сначала вызываем ключевое слово from, затем random для модуля. Затем мы используем ключевое слово import и вызываем конкретную функцию, которую хотим использовать.

Теперь, когда мы реализуем эту функцию в нашей программе, мы больше не будем писать функцию в точечной нотации, как random.randint(), а вместо этого напишем только randint():

my_rand_int.py
from random import randint


for i in range(10):
    print(randint(1, 25))

При запуске программы вы получите результат, аналогичный тому, который мы получали ранее.

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

Псевдонимы модулей

Можно изменить имена модулей и их функций в Python с помощью ключевого слова as.

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

Конструкция этого оператора выглядит следующим образом:

import [module] as [another_name]

Давайте изменить имя модуля math в нашем файле программы my_math.py. Мы изменим имя модуля math на m, чтобы сократить его. Наша измененная программа будет выглядеть так:

my_math.py
import math as m


print(m.pi)
print(m.e)

Внутри программы мы теперь обращаемся к константе pi как к m.pi, а не как к math.pi.

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

import matplotlib.pyplot as plt

Это позволяет программистам добавить более короткое слово plt к любой из доступных функций внутри модуля, например, plt.show(). Вы можете увидеть этот оператор импорта псевдонима в использовании в нашем “руководстве по Как построить график данных в Python 3, используя matplotlib.”

Заключение

Когда мы импортируем модули, мы можем вызывать функции, которые не встроены в Python. Некоторые модули устанавливаются вместе с Python, а некоторые мы установим через pip.

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3