Я проверил похожие вопросы, но ничего не ответил на мой вопрос. Как и в другом посте, моя структура пакета выглядит следующим образом:
mypackage/
__init__.py
mymodule.py
utils/
__init__.py
common.py
myutils1.py
data_classes/
__init__.py
command_file.py
myclass.py
Мне нужно использовать этот пакет несколькими способами: 1) импортировать пакет и использовать его в больших сценариях 2) запустить некоторые модули как отдельные (например: python3 myutils1.py)
myutils использует функции от общих, для этого я попытался
A)
from PySfmc.utils import common #directly in myutils.py
B)
from mypackage import utils # in __init__.py
from mypackage.utils import common # in myutils.py
C)
import common #directly in myutils.py
et c
Короче говоря ... Мне не удалось получить что-то, что успешно импортирует оба при импорте в пакет в реплее И при запуске python3 myutils.py
у кого-нибудь есть идеи, что я делаю не так?
Спасибо !!
редактировать, я угадайте, что сводится к тому, что: из repl я могу сделать одно из следующих действий:
from mypackage.folder.file import function
from mypackage.folder import file
from mypackage import folder
, но если я напишу то же самое внутри myutils1.py, то это не получится
edit2 :
Я отредактировал setup.py из следующей строки:
packages=['mypackage'],
до
packages=['mypackage','mypackage.data_classes','mypackage.utils']
это кажется чтобы исправить мою проблему: теперь каждый все работает, включая импорт, который раньше не удался.
есть ли веская причина, почему я не должен этого делать? он кажется менее хакерским, чем другие предлагаемые решения.