Как импортировать модули в 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 в командной строке следующим образом:
- python
Изнутри интерпретатора вы можете запустить оператор import
, чтобы убедиться, что данный модуль готов к вызову, например:
- import math
Поскольку math
является встроенным модулем, ваш интерпретатор должен выполнить задачу без обратной связи, возвращаясь к подсказке. Это означает, что вам не нужно ничего делать, чтобы начать использовать модуль math
.
Давайте запустим оператор import
с модулем, который вы, возможно, не установили, например с библиотекой 2D-графики matplotlib
:
- import matplotlib
Если matplotlib
не установлен, вы получите следующее сообщение об ошибке:
OutputImportError: No module named 'matplotlib'
Вы можете деактивировать интерпретатор Python с помощью CTRL + D
, а затем установить matplotlib
с помощью pip
.
Затем мы можем использовать pip
для установки модуля matplotlib
:
- 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 случайных целых чисел. Поскольку они случайны, вы, вероятно, будете получать разные целые числа при каждом запуске программы, но они будут генерировать что-то вроде этого:
Output6
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)
Теперь, когда мы запустим нашу программу, мы получим вывод, который выглядит следующим образом, с приближением числа пи в качестве последней строки вывода:
Output18
10
7
13
10
3.141592653589793
Оператор import
позволяет вам импортировать один или несколько модулей в вашу программу Python, позволяя вам использовать определения, созданные в этих модулях.
Использование из … импорта
Чтобы обратиться к элементам из модуля в пространстве имен вашей программы, вы можете использовать оператор from
… import
. Когда вы импортируете модули таким образом, вы можете обращаться к функциям по имени, а не через точечную нотацию.
В этой конструкции вы можете указать, на какие определения ссылаться напрямую.
В других программах вы можете увидеть, что оператор 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))
Когда вы запустите программу, вы получите вывод, аналогичный тому, что мы получили ранее.
Использование конструкции from
… import
позволяет нам ссылаться на определенные элементы модуля в пространстве имен нашей программы, позволяя нам избежать записи через точку.
Псевдонимы модулей
В 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
.
Использование модулей позволяет нам сделать наши программы более надежными и мощными, поскольку мы используем существующий код. Мы также можем создавать собственные модули для себя и для использования другими программистами в будущих программах.