Древовидная структура для пакета пространства имен

У меня есть пакет с именем networkx-metis которая имеет следующую древовидную структуру

networkx-metis/
              setup.py
              networkx/
                      __init__.py
                      addons/
                            __init__.py
                            metis/
                                 metis.py

networkx.addons.metis предполагается установить как пакет пространства имен в основном пакете networkx. Два __init__.py выше содержит одну строку кода

__import__('pkg_resources').declare_namespace(__name__)

Теперь у меня есть несколько конкретных вопросов,

  • Какими должны быть изменения в networkx основной пакет? Где я должен положить пустой __init__.py файлы?
  • Какой должна быть стоимость namespace_packages в setup() из setup.py из networkx-metis?

1 ответ

Решение

What should be the changes in the networkx core package? Where should I put empty __init__.py файлы?

Добавить __init__.py внутри networkx/addons/ with the single line of code in it

__import__('pkg_resources').declare_namespace(__name__)

What should be the value of namespace_packages in setup() of the setup.py of networkx-metis?

Так должно быть

namespace_packages = ['networkx.addons', 'networkx']
Другие вопросы по тегам