У меня есть модуль, который я собираю как яйцо с setuptools. У меня проблема с относительными/абсолютными изменениями.Яйца Python и относительный импорт
Структура каталогов заключается в следующем:
setup.py # using setuptools
mymodule/
|- __init__.py
|- mymodule_core.py
|- utils.py
Когда я easy_installmymodule
в системе из яйца, это импорт работает хорошо:
# mymodule_core.py
from mymodule.utils import some_functions
Но я хочу также запустить mymodule_core.py
из команды line, без его установки (для коротких тестов и т. д.). В этом случае, предыдущий импорт потерпит неудачу, и это работает:
# mymodule_core.py
from utils import some_functions
Как обрабатывать import
так что это будет работать в обоих случаях?
Я думаю, что правильное решение будет включать в себя if __name__ == "__main__"
, from .. import something
и __package__ =
, но я не могу заставить его работать
Связанный:
- Python relative imports within a package not on the path
- Python packages: relative imports
- How to do relative imports in Python?