Как установить путь для «общего» модуля в Python? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь запустить какой-то код со следующей структурой:

-данные
-общинные (для служебных функций и тому подобное)
-модели

Один изФайлы .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

Есть идеи, что не так?

...