#setup.py #read-the-docs
#setup.py #read-the-docs
Вопрос:
У меня есть репозиторий, содержащий три пакета python: основной пакет и два дополнительных пакета с общей документацией. Каждый проект находится в своем собственном каталоге со своим собственным setup.py , как так:
- Репозиторий
- Основной проект
- setup.py
- Аддон один
- setup.py
- Дополнение два
- setup.py
- Документация
- ПЕРВЫЕ файлы, RTD conf и т. Д.
- Основной проект
Ранее я использовал setuptools.find_packages() для сборки своих пакетов, но у меня были проблемы с объединением содержимого пакетов, поскольку они разделяли пространства имен. Поэтому я переключился на указание пакетов, которые я хотел создать, например
packages=["Main Package"]
Однако это нарушило автоматическую сборку ReadTheDocs, где я указал
- method: setuptools
path: Main Project
в файле .readthedocs.yml, когда RTD теперь жалуется, что мой пакет (внутри основного каталога проекта) не существует, поскольку он пытается его собрать.
В моем проекте я использую скрипт для сборки пакетов, где я перемещаюсь в каждый каталог, запускаю его настройку, а затем удаляюсь. Работает нормально, все мои пакеты и документация создаются локально. Однако, похоже, что RTD использует defined только path
для добавления моего setup.py скрипт и, следовательно, не находит исходный пакет, поскольку рабочий каталог является родительским каталогом (но я могу ошибаться!).
Я прочитал документацию, в том числе https://github.com/readthedocs/readthedocs.org/issues/4354 где эта функция была добавлена изначально, но я сам пока не смог найти решение.
Как я могу указать RTD изменить каталог перед сборкой пакетов, или есть альтернативный подход, который будет поддерживать мою структуру репозитория?
Рассматриваемый репозиторий находится здесь.
Ответ №1:
Я нашел решение:
Я изменил свой локальный сценарий сборки, чтобы использовать корневой каталог проекта, согласно -RTD . Затем я добавил директиву package_dir={"": "[directory]"}
к setuptools.setup()
вызовам в каждом проекте setup.py
.