Я знаю, что существует множество вопросов об относительном импорте, но до сих пор я не мог найти решение своей проблемы. Я работаю над своим собственным приложением Python, состоящим из нескольких модулей, использующих друг друга. Упрощенная структура папок приведена ниже. Я мог бы настроить относительный импорт пакетов, однако при загрузке его в test.pypi и загрузке импорт не работает. Например, file1.py
имеет следующий оператор импорта:
from core.file2 import func1, func2, ...
, который - при загрузке моего пакета из testpypi - конечно завершается неудачей, поскольку ядро не является пакетом. Это должно быть
from app.core.file2 import func1, func2, ...
file3.py
имеет операторы импорта, такие как:
import sys
sys.path.append('..')
from core.file2 import func1, func2, ...
, но переписывание операторов импорта в виде:
from app.* import *
завершается неудачно всякий раз, когда яя пытаюсь запустить что-нибудь из локального каталога (где он хранится на моем компьютере).
|- setup.py
|- app
|- __init__.py
|- file1.py
|- core
|- __init__.py
|- file2.py
|- module1
|- __init__.py
|- file3.py
|- tests
|- ...
|- ....
Что-то мне не хватает? Как я должен это исправить, или как это должно быть обработано? Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ : чтобы прояснить проблему: я могу заставить ее работать, но главная проблема заключается в том, что мне приходится переписывать все операторы импорта при загрузке в TestPyPiдля правильной работы при загрузке пакета.
Мой вопрос: есть ли способ избежать этого?