Со структурой проекта, подобной следующей:
myproject/
|--- __init__.py
|--- application.py
|--- modules/
|--- __init__.py
|--- parser.py
|--- utils/
|-- __init__.py
|-- helpers.py
В utils/helpers.py
:
def find_stuff():
return stuff
def help_me():
return some_help
В modules/parser.py
я хочу импортировать find_stuff
(и только это).
Я пробовал следующее:
from ..utils.helpers import find_stuff
Но ...
ImportError: cannot import name 'find_stuff' from 'myproject.utils.helpers' (/Users/myself/myproject/utils/helpers.py)
Что здесь нужно сделать?
Примечания:
- все работало нормально с политикой абсолютного импорта всего проекта, пока я не начал использовать Pytest, а затем весь ад развалился
- нет, я не хочу
from ..utils import helpers
, а затем использовать helpers.find_stuff
в parser.py
- я предполагаю, что система импорта Python достаточно продумана, чтобы мы могли точно избежать этого
- в сообщении об ошибке мы видим, что Python удается найти правильный файл, однако по какой-то причине он просто не импортирует имя функции / класса / объекта, несмотря на то, что оно присутствует в файле