Я поддерживаю пакет, документацию которого я автоматически генерирую с помощью Sphinx на readthedocs.org. Для Sphinx/readthedocs я использую правильно определенные conf.py
и .readthedocs.yaml
.
Внутри conf.py
я использую версию:
import pybliometrics
version = pybliometrics.__version__
release = pybliometrics.__version__.replace("_", "")
Версия генерируется в pybliometrics/__init__.py
. Сам пакет также использует свою версию где-то в коде.
Когда я делаю версию с pbr
(Разумность сборки Python), например
from pbr.version import VersionInfo
_v = VersionInfo('pybliometrics').semantic_version()
__version__ = _v.release_string()
тогда процесс сборки в readthedocs работает без проблем (при условии, что я заставлю его установить pbr
).
Однако, когда это выглядит как
from importlib.metadata import version
__version__ = version("pybliometrics")
то процесс сборки завершается с ошибкой importlib.metadata.PackageNotFoundError: No package metadata was found for pybliometrics
. То же самое для importlib_metadata
.
Что там происходит? Причина, по которой я переключился на importlib.metadata
, заключается в том, что я могу выполнить весь процесс сборки с помощью setuptools_scm
и избавиться от setup.py
и setup.cfg
.
Вероятно, вам нужно сделать pip install -e
эквивалент в вашем файле сборки RTD requirements.txt
.
См. пример .readthedocs.yml здесь и см. требования.txt здесь.
См. -e .
в последней строке примера requirements.txt.
Я упустил из виду -e .
, и это, кажется, решило мою проблему
Что там должно быть? В настоящее время мне нужно
docs/requirements.txt
установить sphinx и два расширения sphinx. Я пытался поставитьimportlib
илиimportlib_metadata
безуспешно.