Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
5062

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

Одной из распространенных проблем, с которой сталкиваются новички в Python, является импортирование функций или классов из файлов, расположенных в разных

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

проект
├── папка1
│   └── файл1.py
└── папка2
    └── файл2.py

В файле файл1.py определена функция func(), которую необходимо использовать в файл2.py. Первым, что приходит в голову, это попытаться импортировать функцию напрямую:

from проект.папка1.файл1 import func

Однако, это выдаст ошибку, потому что Python не сможет найти указанный модуль. Как же быть?

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Правильное импортирование файлов из разных папок

Python использует переменную среды PYTHONPATH для определения, где искать модули для импорта. По умолчанию PYTHONPATH включает в себя текущую директорию (или директорию, откуда был запущен скрипт) и некоторые стандартные директории, где установлен Python.

Для решения проблемы необходимо добавить папку, содержащую нужный модуль, в PYTHONPATH. Если папка проекта является корневой директорией для всех модулей, ее следует добавить в PYTHONPATH.

Это можно сделать двумя способами:

1. Изменение PYTHONPATH

Добавьте путь к папке проекта в переменную среды PYTHONPATH. Это можно сделать в командной строке следующим образом:

export PYTHONPATH=$PYTHONPATH:/путь/к/папке/проекта

После этого Python сможет найти и импортировать модули из этой папки.

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

2. Добавление пути при помощи sys.path

Можно динамически добавить путь к папке проекта в список путей, где Python ищет модули. Это делается с помощью модуля sys:

import sys
sys.path.append('/путь/к/папке/проекта')

Этот код необходимо добавить в начало файла файл2.py, прежде чем попытаться импортировать модуль из файл1.py.

Оба этих способа позволяют Python найти и импортировать модули из любой папки на компьютере. Однако, следует помнить, что изменение PYTHONPATH или sys.path влияет на все последующие операции импорта в текущем сеансе Python. Поэтому следует быть осторожным и избегать добавления путей, которые могут спровоцировать конфликты имен модулей.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий