Objective:我试图在位桶管道中生成sphinx文档。
问题:尽管有关管道的所有工作正常,但狮身人面像似乎在寻找某些模块方面存在问题:
WARNING: autodoc: failed to import module ... from module ...;
the following exception was raised: No module named 'pandas'
如消息所言,这是因为找不到pandas
。
通常在sphinx需要项目中调用的库但未安装该库时发生。因此,我安装了requirements.txt
中列出的所有模块,当然包括pandas
。但是,我仍然收到相同的警告。
结果:这些警告使生成的html文件为空(只有模块名称可能会出现在其中)。
关于管道的更多信息:我的管道包括3个步骤:
pip install -r requirements.txt
,(成功完成)在这里您可以看到我的管道配置:bitbucket-pipelines.yml
故障排除1:我已经在机器上以完全相同的配置执行了这个项目,并且没有收到关于缺少模块的警告。如果我使用另一个缺少pandas
(例如)的virtualenv,则狮身人面像会开始抱怨它,如上所示。
故障排除2:对此类问题的典型响应是检查sys.path
中的conf.py
。 (在我的情况下)找不到模块与我在sys.path
中添加conf.py
的方式无关。如果真是这样,sphinx可能会在all模块上遇到问题。
每个管道步骤都在单独的Docker容器中运行,这就是为什么在第二步中缺少依赖项的原因。您需要在安装依赖项的同一步骤中运行sphinx,例如:
image: python:3.6.8
pipelines:
branches:
master:
- step:
name: doc generator
trigger: manual
caches:
- pip
script:
- apt-get update && apt-get -y install python-sphinx
# INSTALL YOUR DEPENDENCIES HERE
- pip install -r requirements.txt
- pip install sphinx_rtd_theme
- cd sphinxdocs
- make clean
- sphinx-apidoc -o . ..
- make html
artifacts:
- sphinxdocs/_build/html/**