Собственный пакет Python относительно импорта - PullRequest
0 голосов
/ 02 октября 2019

Я знаю, что существует множество вопросов об относительном импорте, но до сих пор я не мог найти решение своей проблемы. Я работаю над своим собственным приложением 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для правильной работы при загрузке пакета.

Мой вопрос: есть ли способ избежать этого?

...