Я собираюсь упаковать и загрузить библиотеку, которая у меня есть, в PyPI в ближайшие несколько дней, но я немного не уверен в своем подходе к пространству имен.
У меня есть несколько не связанных друг с другом проектов с похожим подходом, и я хотел предоставить им одно и то же пространство имен. Например:
- Пространство имен библиотеки 1:
abc.seo
- Пространство имен библиотеки 2:
abc.ajax
- Пространство имен библиотеки 3:
abc.ecommerce
- и т.д
Проблема в том, что я не уверен, возможно ли, чтобы два отдельных пакета (например, яйца) сосуществовали с одним и тем же родительским пространством имен. Является ли этот подход проблематичным или есть способ обойти его? Каков наилучший подход?
Библиотеки не должны быть упакованы вместе, они слишком несвязаны. Я хотел бы получить это прямо перед загрузкой, чтобы избежать болезненных изменений пространства имен после создания «официального» выпуска.
(NB abc
не настоящее имя, я хотел, чтобы мой вопрос не содержал рекламы)
ОБНОВЛЕНИЕ
Я пошел со следующим, чтобы быть добрым к людям без установленных инструментов настройки:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
Со следующим в setup.py
:
setup(
...
namespace_packages = ['rollyourown'],
...
mx
на PyPi? Посмотрите на них для примеров. Затем вы можете задать более конкретные вопросы на основе этого шаблона. - person S.Lott   schedule 21.02.2011mx
имеют очень сложный процесс установки, я постараюсь выяснить, есть ли у них какие-либо специальные обходные пути для проблем с пространством имен. - person Will Hardy   schedule 21.02.2011