Как можно построить несколько модулей python, имеющих одно и то же пространство имен, совместимое для Python 2.7+ и 3.3 +?
Позвоните в пространство имен test. Теперь я хочу иметь два отдельных модуля под названием test.foo, а другой - test.bar. Тем не менее, я в настоящее время разрабатываю test.helloworld, который зависит от обоих, test.foo и test.bar. Оба они перечислены в файле requirements.txt.
В настоящее время модули test.foo и test.bar используют решение Python 2 для пакетов пространства имен:
import pkg_resources
pkg_resources.declare_namespace(__name__)
Запуск предлагаемой команды пика для режима разработки pip install -e . превращается в: ImportError: No module named 'test.helloworld' при работе test.foo или test.bar.
Решение Python 3 для пакетов пространства имен - это пакеты неявного пространства имен, в которых пакет пространства имен не имеет файла __init__.py. Это, к сожалению, не работает для версий Python 2.
Как я могу создать решение для Python 2 и 3 (что позволяет мне использовать pip install -e .)? Решение --egg не работает для меня, поскольку оно уже устарело.