Python `pip install` из локального проекта - модули не могут найти друг друга

У меня запущен сервер разработки virtualenv (Python 3.6), в который я хочу установить локальный проект Python. Если я бегу pip install -e /path/to/myproject в то время как virtualenv активен, то внутри этой среды я могу import myproject, Я тоже могу сделать from myproject import submodule, Но если я сделаю from myproject import othermodule, Я получил ModuleNotFoundError: No module named 'submodule'. (othermodule импорт submodule). Это не произойдет, если я import myproject от myprojectкорень

Структура каталогов:

/path/to/myproject
    setup.py
    myproject/
        __init__.py
        submodule.py
        othermodule.py
        ...

setup.py похоже:

setup(
name='myproject'
packages=['myproject']
)

В чем дело? Почему эти библиотеки не найдены?

1 ответ

Решение

Проблема заключалась в том, что относительный импорт Python 3 должен быть явным.

В othermodule, вместо

import submodule

Мне нужно написать:

import myproject.submodule

или же

import .submodule
Другие вопросы по тегам