Bitbucket的管道无法识别已安装的python库

问题描述 投票:0回答:1

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个步骤:

  1. 安装python moduels:pip install -r requirements.txt,(成功完成)
  2. 生成sphinx文档,(成功完成,并带有上述警告)
  3. 将结果同步到远程服务器,(与问题无关)

在这里您可以看到我的管道配置:bitbucket-pipelines.yml


故障排除1:我已经在机器上以完全相同的配置执行了这个项目,并且没有收到关于缺少模块的警告。如果我使用另一个缺少pandas(例如)的virtualenv,则狮身人面像会开始抱怨它,如上所示。

故障排除2:对此类问题的典型响应是检查sys.path中的conf.py。 (在我的情况下)找不到模块与我在sys.path中添加conf.py的方式无关。如果真是这样,sphinx可能会在all模块上遇到问题。

python bitbucket python-sphinx bitbucket-pipelines
1个回答
1
投票

每个管道步骤都在单独的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/**
© www.soinside.com 2019 - 2024. All rights reserved.