🔑 Как импортировать модуль из другой папки в Python?

Чтобы импортировать модуль из другой папки в Python, вы можете использовать модуль sys и добавить путь к нужной папке в список путей поиска модулей (sys.path).

import sys
sys.path.append('путь_к_папке')
import модуль

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

from ..другая_папка import модуль

Детальный ответ

Как импортировать модуль из другой папки в Python?

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

Давайте представим, что у нас есть следующая структура проекта:


        project_folder
        │   main.py
        │
        └───folder1
        │   │   module1.py
        │
        └───folder2
            │   module2.py
    

1. Использование относительных путей

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

Предположим, что мы хотим импортировать module2.py из main.py, который находится в folder1:


        # main.py
        from ..folder2 import module2
    

В этом примере мы используем две точки (..), чтобы указать, что модуль module2.py находится в родительской папке folder2.

2. Добавление пути в систему поиска модулей

Еще один способ импортирования модуля из другой папки - добавить путь к нужной папке в систему поиска модулей. Для этого мы можем использовать модуль sys и его атрибут path. Рассмотрим пример:


        import sys
        sys.path.append('/путь/к/папке')
        
        from module2 import some_function
    

В этом примере мы добавляем путь к папке /путь/к/папке в систему поиска модулей с помощью метода append атрибута path. Затем мы можем импортировать функцию some_function из модуля module2.

3. Использование пакетов

Пакеты представляют собой способ организации кода в модули и папки внутри проекта. Они позволяют группировать связанный код вместе. Давайте рассмотрим пример:

Предположим, что мы хотим импортировать module2.py из main.py, который находятся в одной и той же папке:


        project_folder
        │   main.py
        │
        └───folder1
        │   │   module1.py
        │
        └───folder2
            │   __init__.py
            │   module2.py
    

В этом примере мы создаем файл __init__.py в папке folder2. Это позволяет Python интерпретировать эту папку как пакет. Теперь мы можем импортировать module2 в main.py следующим образом:


        # main.py
        from folder2 import module2
    

4. Имя модуля внутри пакета

Иногда может возникнуть потребность импортировать модуль с конкретным именем внутри папки-пакета. В этом случае мы можем использовать ключевое слово as для переименования импортированного модуля. Рассмотрим пример:

Предположим, что у нас есть следующая структура проекта:


        project_folder
        │   main.py
        │
        └───folder1
        │   │   module1.py
        │
        └───folder2
            │   __init__.py
            │   module2.py
    

Мы хотим импортировать module2.py в main.py с именем m2:


        # main.py
        from folder2.module2 import some_function as m2
        
        m2()
    

5. Использование абсолютного импорта

Абсолютный импорт - это способ импортирования модулей, используя полное имя модуля, начиная с корневого уровня проекта. Для этого мы используем ключевое слово from с указанием полного пути к модулю. Рассмотрим пример:

Предположим, что у нас есть следующая структура проекта:


        project_folder
        │   main.py
        │
        └───folder1
        │   │   module1.py
        │
        └───folder2
            │   __init__.py
            │   module2.py
    

Мы хотим импортировать module2.py в main.py используя абсолютный импорт:


        # main.py
        from project_folder.folder2 import module2
        
        module2.some_function()
    

Заключение

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

Видео по теме

Импорт собственных модулей в Python. Import modules. Атрибут модуля __name__ и __main__

Импорт файлов Python из разных папок

#48. Импорт собственных модулей | Python для начинающих

Похожие статьи:

Что такое Anaconda для Python? 🐍

🔍 Как вывести определенный символ строки в Питоне? 🐍

🤖 Как написать бота на питоне для ВКонтакте 🐍

🔑 Как импортировать модуль из другой папки в Python?

🔍 Как определить пол королевского питона: подробная инструкция для начинающих

🧮 Как вызвать модуль math в питоне: подробное руководство с примерами

🔧 Как менять переменные в функции Python: простой и понятный способ