← Назад ко всем вопросам

Как работает импорт в 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 позволяет настраивать пути поиска модулей.

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки