Я собираюсь упаковать и загрузить библиотеку, которую я должен использовать PyPI в ближайшие несколько дней, но я немного не уверен в моем подходе к пространству имен.
У меня есть несколько других несвязанных проектов с похожим подходом и хотелось бы предоставить им все одинаковое пространство имен. Например:
- Библиотечное пространство 1:
abc.seo
- Библиотечное пространство 2:
abc.ajax
- Библиотечное пространство 3:
abc.ecommerce
- и т.д.
Проблема заключается в том, что я не уверен, может ли два отдельных пакета (например, яйца) сосуществовать с одним и тем же родительским пространством имен. Является ли этот подход проблематичным, или есть способ его преодоления? Какой лучший подход?
Библиотеки не должны упаковываться вместе, они слишком несвязаны. Я бы хотел, чтобы это было правильно перед загрузкой, чтобы избежать болезненных изменений пространства имен после создания "официального" релиза.
(NB abc
не настоящее имя, я хотел, чтобы мой вопрос был свободен от рекламы)
UPDATE
Я пошел со следующим, чтобы быть приятным людям без установки setuptools:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
В setup.py
указано следующее:
setup(
...
namespace_packages = ['rollyourown'],
...