Изменение sys.path для чтения документов

Я документирую свой проект пирамиды локально с помощью sphinx. Локально autodoc работает нормально и документация выглядит так, как я хочу.

Но если я использую read the docs, я получаю следующую ошибку при каждом использовании функции autodoc:

/home/docs/checkouts/readthedocs.org/user_builds/buchungssystem/checkouts/latest/docs/source/02database/02models.rst:8: WARNING: autodoc: failed to import class u'Person' from module u'buchungssystem.models.person'; the following exception was raised: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/buchungssystem/envs/latest/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 385, in import_object __import__(self.modname) ImportError: No module named buchungssystem.models.person

Мой проект устроен так:

project
->code
  ->models
  ->scripts
  ->...
  ->__init__.py
  ->...
->docs
  ->conf.py
  ->documentation
->setup.py

Я думаю, что мой sys.path настроен неправильно. Перепробовав много, я снова в sys.path.insert(0, os.path.abspath('.'))


person bockstaller    schedule 03.11.2016    source источник


Ответы (1)


в вашем conf.py попробуйте это

sys.path.insert(0, os.path.join(os.path.dirname((os.path.abspath('.')), 'code', 'models')

потому что для этого требуется путь к классу Person, и этот класс находится на один шаг вверх в вашей иерархии, и вы можете вытащить путь этого класса.

person armak    schedule 03.11.2016