Сфинкс генерирует исключение KeyError - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть python flask скрипт внутри docker. Этот скрипт получает некоторую переменную окружения из docker -compose следующим образом:

app = Flask(__name__)
DEFAULT_PSW = os.environ['DEFAULT_PSW']

@app.route("/")
def manager():
    ...

Я хотел задокументировать это с помощью Sphinx. Я смог настроить его, но когда я запускаю «make html», я получаю следующее исключение:

WARNING: autodoc: failed to import module 'main'; the following exception was raised:
Traceback (most recent call last):
  File "/home/lorenzo/.local/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/lorenzo/Desktop/Dev/project/script/manager_flask/manager/manager/main.py", line 20, in <module>
    DEFAULT_PSW = os.environ['DEFAULT_PSW']
  File "/usr/lib/python3.7/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'DEFAULT_PSW'

Если я хорошо понял, как работает sphinx, проблема в том, что sphinx попытается «скомпилировать» мой скрипт и, конечно же, во время этого процесса он не найдет переменную окружения. Что я могу сделать?

РЕДАКТИРОВАТЬ: Шаги, которые я сделал, чтобы получить эту ошибку:

  1. Создать папку с именем docs
  2. Внутри папки docs запустился sphinx-quickstart оставляя все по умолчанию, кроме автора и имени проекта.
  3. Отредактировал conf.py (этот файл можно найти в репозитории в комментарии)
  4. Создайте первый файл с sphinx-apido c
  5. Создание папок модулей и добавление файлов scp_handler.rst и main.rst
  6. Обновлен index.rst, добавив путь к новому сгенерированному файлу
  7. Run "make html ".
...