Нужна помощь с KeyError при создании файлов epydoc для проекта
У меня есть проект по пилонам с обширным набором функциональных тестов, которые я хочу, чтобы время от времени мои контрольные программы могли читать, поэтому я использую epydoc для создания hdml pydocs на модулях функциональных тестов.
Кажется, работает нормально. Он генерирует документы, и я могу просматривать их без каких-либо видимых проблем.
Тем не менее, я получаю странную ошибку при запуске сборки epydoc, и я не уверен, как это исправить:
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| In project.tests.functional.resource:
| Import failed (but source code parsing was successful).
| Error: KeyError: '__file__' (line 28)
|
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| In /Eclipse/product/project/server/src/project/tests/functional/resource/ftest_module1.py:
| Import failed (but source code parsing was successful).
| Error: KeyError: '__file__' (line 28)
|
+------------------------------------------------------------------------------------------
Всего существует 2 пакета и 8 модулей, на которых это происходит. Сначала я подумал, что это может быть отсутствие строк документации в начале модулей или в __init__ пакетов, но добавление их не исправило это.
Вот копия конфигурационного файла epydoc, написанного специально для функциональных тестов:
[epydoc]
modules: project.tests.functional.resource,project.tests.functional.views
output: html
sourcecode: yes
#graph: none
target: ../pydoc/ftests
name: PROJECT
# exclude: test
private: no
imports: no
verbosity: 0
include-log: yes
А вот копия сценария оболочки, используемая для его выполнения:
#!/usr/bin/env bash
basedir=${0%/*}
cd "$basedir/../src"
etc="../etc"
pydoc="../pydoc"
pydoc_ftests="../pydoc/ftests"
mkdir -p $pydoc
mkdir -p $pydoc_ftests
epydoc -v --config $etc/epydoc.config
epydoc -v --config $etc/epydoc.ftests.config
Какие-либо предложения?
1 ответ
В конечном итоге я просто включил --parse-only в команду epydoc, чтобы заставить ее ничего не импортировать (таким образом, обойдя проблему несмещаемого импорта, но не ответив, почему это вообще произошло). Не идеальное решение, но оно удовлетворяет требованиям...