第一次在这里提问,如果我错过了一些细节,请原谅。
我正在运行 sphinx auto-api 来生成文档,这在这个项目上一直有效,但现在抱怨站点包之一中的某些导入。
命令:
sphinx-build -b dummy docs docs/_build/html --keep-going
我不确定发生了什么事。在我的
conf.py
文件中,我有以下行:
import os
import sys
sys.path.insert(0, os.path.abspath(".."))
我在诗歌环境中运行它。
这是我看到的错误。
[AutoAPI] Reading files... [ 11%] /Users/marta/PycharmProjects/app/app/lib/python3.10/site-packages/requests-stubs/api.pyi
Extension error (autoapi.extension):
Handler <function run_autoapi at 0x107c7da20> for event 'builder-inited' threw an exception (exception: Relative import with too many levels (1) for module 'api')
sphinx 软件包的版本:
Sphinx = "^6.1.0"
sphinx-rtd-theme = "^2.0.0"
sphinx-pydantic = "^0.1.1"
sphinx-autoapi = "^3.0.0"
我也遇到过同样的错误。我做了两项更改来生成文档:
import .MyModule.X
等绝对导入语句替换 import MyPackage.MyModule.X
等相对导入语句。docs/conf.py
:不要通过选项 autoapi_dirs = ["../source1", "../source2", "../source3"]
指定所需的目录,而是将其指向包根目录 autoapi_dirs = [".."]
,然后指定 autoapi_ignore = ["*pattern1*", "*file2*", "*directory3*"]
以排除所有目录有问题的文件/目录。 _请注意,星号 *
需要排除所需的目录,例如“directory3”排除目录directory3/
中的所有文件。我执行的第二步是因为在更改相对导入语句后,我遇到了this问题中描述的进一步错误。
备注:我想将此作为评论提交,但我没有足够的“声誉”。尽管我无法解释细节,但我希望这个答案有所帮助。
sphinx-build -b html . _build
目录中运行 docs
。