Импорт модулей (в этих модулях тоже импорт) на python
Возникла проблема с импортом модулей в python. Есть файловый каталог:
Вот код в b.py import file.c
Код в a.py import load.b. В a.py
выходит ошибка: "ModuleNotFoundError: No module named 'file'".
Прошу, помогите решить проблему, я новичëк в python. Решение проблемы найти не смог, заранее спасибо)
Ответы (3 шт):
Измените импорты таким образом
# a.py
from load import b
# b.py
from .file import c
The Module Search Path (docs.python.org)
Интерпретатор ищет нестандартные модули (локальные) в sys.path, который он дополнительно расширяет путем директории запуска скрипта. По этой причине, когда он пытается импортировать file в b.py, который запускается через импорт a.py, он не способен найти модуль file. Иными словами, директория test в путях для поиска, а load - нет. Запускаем b.py - load в путях для поиска.
a.py
Файл можно изменить так:
import sys
sys.path.append(sys.argv[0] + "/load")
import load.b
То есть мы сами добавляем директорию load в пути поиска модулей.
Помогло следующее, в файл a.py добавил следующие строки:
import sys
import os
sys.path.append(os.path.join(sys.path[0], './load'))
Огромное всем спасибо за помощь! :D