【问题标题】:gitlab-page for sphinx project is not working as expectedsphinx 项目的 gitlab-page 未按预期工作
【发布时间】:2022-01-21 01:15:40
【问题描述】:

整个项目的链接https://gitlab.com/ComplicatedPhenomenon/doubancrawler

我在本地机器上测试了生成的文档,它工作正常

gitlab 页面如下 (https://complicatedphenomenon.gitlab.io/doubancrawler/api.html)

.gitlab-ci.yml 有什么问题吗?

image: python:3.7-alpine

test:
  stage: test
  script:
  - pip install -r requirements2.txt
  - cd docs/source/
  - sphinx-build -b html . public
  - mv public ../..
  only:
  - branches
  except:
  - master

pages:
  stage: deploy
  script:
  - pip install -r requirements2.txt
  - cd docs/source/
  - sphinx-build -b html . public
  - mv public ../..
  artifacts:
    paths:
    - public
  only:
  - master

【问题讨论】:

  • 当 autodoc 无法找到/导入您的参考文献时会发生这种情况。也许尝试在工作中先安装你的包,或者在你的 sphinx 配置中修改sys.path 以确保在构建文档时可以导入你的模块。

标签: python gitlab python-sphinx gitlab-pages


【解决方案1】:

当 autodoc 无法找到/导入您的参考文献时会发生这种情况。

您没有安装项目的所有要求。为了使 autodoc 工作,您需要能够导入所有包模块。但是,您只是安装了构建文档的要求 (requirements2.txt)。

否则,autodoc 将在尝试提取您的文档字符串时收到 ImportError,因为您的模块会尝试导入未安装的包。

在本地,您可能没有问题,因为您已经安装了所有要求。

要解决此问题,请将pip install -r requirements.txt 添加到您的工作中。

【讨论】:

  • 确实是这样,我应该仔细检查 GitLab CI/CD 期间生成的日志,因为有线索。即便是当时的 CI/CD 过去了,仍然有很多警告。
  • 其实我并不清楚为什么autodoc需要检查是否安装了导入库,对我来说,我认为autodoc的必要工作是检查文档的语法。
  • @ComplicatedPhenomenon 因为 autodoc 扩展不使用静态分析技术。它使用inspect,它通过检查需要导入模块的 Python 对象来工作。请记住,文档字符串可以通过编程方式生成。
  • 现在我不那么困惑了,感谢您的解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多