Поиск по сайту:

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


Введение

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

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

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

Модули — это файлы Python .py, состоящие из кода Python. На любой файл Python можно ссылаться как на модуль. Файл Python с именем hello.py имеет имя модуля hello, которое можно импортировать в другие файлы Python или использовать в интерпретаторе командной строки Python. Вы можете узнать о создании собственных модулей, прочитав How To Write Modules in 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 для генерации случайных чисел следующим образом:

import random

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

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

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

Давайте создадим цикл for, чтобы показать, как мы будем вызывать функцию модуля random в нашей программе 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:

import random
import math

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

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

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. Когда вы импортируете модули таким образом, вы можете обращаться к функциям по имени, а не через точечную нотацию.

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

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

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

from random import randint

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

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

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, чтобы сократить его. Наша модифицированная программа будет выглядеть так:

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.

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