Bitbucket 的管道无法识别已安装的 python 库
Bitbucket's pipelines don't recognize the installed python libraries
Objective: 我正在尝试在 bitbucket 管道中生成 sphinx 文档。
问题:虽然有关管道的一切都正常,但 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 个步骤:
- 安装 python 个模块:
pip install -r requirements.txt
,(成功完成)
- 生成 sphinx 文档,(成功完成,带有上述警告)
- rsync 结果到远程服务器,(与问题无关)
在这里你可以看到我的管道配置:bitbucket-pipelines.yml
故障排除 1:我已经在我的机器上使用完全相同的配置执行了这个项目,但我没有收到有关缺少模块的警告。如果我使用另一个缺少 pandas
(例如)的 virtualenv,那么 sphinx 将开始抱怨它,正如我在上面显示的那样。
疑难解答2:对于此类问题的典型反应是检查conf.py
中的sys.path
。找不到模块(在我的例子中)与我在 conf.py
中添加 sys.path
的方式无关。如果是这样的话,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/**
Objective: 我正在尝试在 bitbucket 管道中生成 sphinx 文档。
问题:虽然有关管道的一切都正常,但 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 个步骤:
- 安装 python 个模块:
pip install -r requirements.txt
,(成功完成) - 生成 sphinx 文档,(成功完成,带有上述警告)
- rsync 结果到远程服务器,(与问题无关)
在这里你可以看到我的管道配置:bitbucket-pipelines.yml
故障排除 1:我已经在我的机器上使用完全相同的配置执行了这个项目,但我没有收到有关缺少模块的警告。如果我使用另一个缺少 pandas
(例如)的 virtualenv,那么 sphinx 将开始抱怨它,正如我在上面显示的那样。
疑难解答2:对于此类问题的典型反应是检查conf.py
中的sys.path
。找不到模块(在我的例子中)与我在 conf.py
中添加 sys.path
的方式无关。如果是这样的话,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/**