Я пытаюсь запустить какой-то код со следующей структурой:
-данные
-общинные (для служебных функций и тому подобное)
-модели
Один изФайлы .py внутри моделей импортируют служебную функцию из общего.Однако, когда я запускаю файл, я получаю ImportError:
File "models/model_A/train_model.py", line 23, in <module>
from common.args import Args
ModuleNotFoundError: No module named 'common'
Я осознаю, что проблема связана с тем, что python не может видеть Common, и что его каким-то образом нужно добавить вдорожка.Поэтому я добавил в код «Model_A» следующую команду:
import sys
sys.path.insert(0,"/home/mainfolder/common").
Я также проверил, как Common структурирован, и у него есть файл инициализации ____init___.py (2 подчеркивания с каждой стороны)
Я также добавил к коду оператор
print(sys.path)
, и он возвращает следующее:
['/ home / mainfolder / common',
'/ home / mainfolder /models / modelA ',
' /opt/conda/envs/myenv/lib/python36.zip ',' /opt/conda/envs/myenv/lib/python3.6 ',' / opt / conda / envs /myenv / lib / python3.6 / lib-dynload ',
' /opt/conda/envs/myenv/lib/python3.6/site-packages ']
Первое было явно добавлено, когда япопробовал добавить это явно в коде.Второе, я думаю, добавляется, потому что, когда я запускал ModelA, я запускал его из основной папки, используя
python models/model_A/train_model.py
Есть идеи, что не так?