Как работает импорт в Python: import vs from ... import ...? Что такое PYTHONPATH?
1️⃣ Как кратко ответить
import используется для импорта всего модуля, а from ... import ... — для импорта конкретных объектов из модуля. PYTHONPATH — это переменная окружения, определяющая пути, по которым Python ищет модули для импорта.
2️⃣ Подробное объяснение темы
В Python импорт модулей позволяет использовать код, написанный в других файлах, что способствует повторному использованию кода и его организации. Существует два основных способа импорта: import и from ... import ....
Импорт модулей с помощью import
Когда вы используете import, вы импортируете весь модуль. Это означает, что все функции, классы и переменные, определенные в этом модуле, становятся доступными, но для их использования необходимо указывать имя модуля.
import math
# Использование функции sqrt из модуля math
result = math.sqrt(16) # Возвращает 4.0
import math: Импортирует весь модульmath.math.sqrt(16): Вызывает функциюsqrtиз модуляmath.
Импорт с помощью from ... import ...
Этот способ позволяет импортировать конкретные объекты из модуля, что избавляет от необходимости указывать имя модуля при каждом использовании.
from math import sqrt
# Прямое использование функции sqrt
result = sqrt(16) # Возвращает 4.0
from math import sqrt: Импортирует только функциюsqrtиз модуляmath.sqrt(16): Вызывает функциюsqrtнапрямую, без указания модуля.
Импорт с использованием псевдонимов
Вы можете использовать псевдонимы для модулей или объектов, чтобы упростить их использование или избежать конфликтов имен.
import math as m
result = m.sqrt(16) # Использует псевдоним m для модуля math
import math as m: Импортирует модульmathс псевдонимомm.m.sqrt(16): Вызывает функциюsqrtиз модуляmathчерез псевдонимm.
Переменная окружения PYTHONPATH
PYTHONPATH — это переменная окружения, которая определяет дополнительные пути, по которым Python ищет модули для импорта. Если модуль не найден в стандартных директориях, Python проверяет пути, указанные в PYTHONPATH.
Пример настройки PYTHONPATH
Если у вас есть структура проекта:
/my_project
/libs
my_module.py
main.py
И вы хотите импортировать my_module в main.py, вы можете добавить /my_project/libs в PYTHONPATH.
export PYTHONPATH="/my_project/libs:$PYTHONPATH"
Теперь в main.py вы можете импортировать my_module:
import my_module
export PYTHONPATH="/my_project/libs:$PYTHONPATH": Добавляет/my_project/libsвPYTHONPATH.import my_module: Импортируетmy_moduleиз указанного пути.
Таким образом, import и from ... import ... предоставляют гибкость в управлении импортом модулей, а PYTHONPATH позволяет настраивать пути поиска модулей.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться