如何在 Sphinx 文档中显示 Python 文档字符串中的图像?
How do I display an image in Sphinx docs from a Python docstring?
Python 文档字符串图像嵌入
在 Python 文档字符串中,我有一个 reStructuredText 指令来显示图像:
.. image:: ./images/code_quality.png
我得到的不是图像,而是一个小图标和一个路径:
_images/code_quality.png
Screen clip of link shown instead of the image I want to show.
我也试过这个:
.. image:: images/code_quality.png
还有这个:
.. image:: https://imgs.xkcd.com/comics/code_quality.png
:alt: code_quality
使用图形而不是图像只是将相同的输出居中。
.. figure:: images/code_quality.png
如果我将它从文档字符串中取出并放入 .rst 文件中,它也不起作用。
图像被 Sphinx 复制到 _static 目录中。 link 的任何其他形式都会引发错误。我在指令前后有两个空行。
所有其他文档字符串都能正确呈现,包括包含图像 link 的其余文档字符串。我没有其他图像要渲染,但我之前在另一个模块中尝试过一次,但它也没有用。
我正在使用 autodoc 扫描 Python 模块的文档字符串。我在 Windows 10 上,Chrome 是我的主要浏览器。它不适用于我尝试过的任何其他浏览器。
有建议看这个回答:
- 我正在使用图像指令。
- 我的路径是正确的。
- 相对路径和完整路径均未指向渲染图像。
- 这个项目我没有使用 PyCharm,我使用的是 VS Code。
- 除图像问题外,我的文档呈现良好。
Shell make 输出:
\docs>make html
Running Sphinx v2.4.4
loading translations [en]... done
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 11 source files that are out of date
updating environment: [new config] 11 added, 0 changed, 0 removed
reading sources... [100%] user_guide
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] user_guide
generating indices... genindex py-modindexdone
writing additional pages... searchdone
copying images... [100%] images/code_quality.png
copying static files... ... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.
The HTML pages are in build\html.
HTML 输出的图像部分是:
<img alt="_images/code_quality.png" tedc="_images/code_quality.png" />
('tedc' 是我在项目的根 setup.py 模块中定义的应用程序的名称。)
我试图通过创建一个结构与我的生产项目结构相同的一般方式的项目来重现图像指令在 Sphinx 中无法正常工作的问题。
我的生产代码是从 root 调用的,模块位于包中。
我的文档位于 docs 目录中,与此处显示的相同。
我用的是虚拟环境,和这里一样
我使用的库比这里使用的库多得多。
我正在使用 Python 3.8.2
我在练习中没有发现任何有助于解释为什么图像指令在我的生产代码中不起作用的内容。我的生产代码使用相同的指令。
在我尝试重现这个问题并没有成功后,我建议OP尝试删除虚拟环境和docs构建目录,并重新创建他们的虚拟环境,安装需求,并再次构建文档。这解决了问题。
Python 文档字符串图像嵌入
在 Python 文档字符串中,我有一个 reStructuredText 指令来显示图像:
.. image:: ./images/code_quality.png
我得到的不是图像,而是一个小图标和一个路径:
_images/code_quality.png
Screen clip of link shown instead of the image I want to show.
我也试过这个:
.. image:: images/code_quality.png
还有这个:
.. image:: https://imgs.xkcd.com/comics/code_quality.png
:alt: code_quality
使用图形而不是图像只是将相同的输出居中。
.. figure:: images/code_quality.png
如果我将它从文档字符串中取出并放入 .rst 文件中,它也不起作用。
图像被 Sphinx 复制到 _static 目录中。 link 的任何其他形式都会引发错误。我在指令前后有两个空行。
所有其他文档字符串都能正确呈现,包括包含图像 link 的其余文档字符串。我没有其他图像要渲染,但我之前在另一个模块中尝试过一次,但它也没有用。
我正在使用 autodoc 扫描 Python 模块的文档字符串。我在 Windows 10 上,Chrome 是我的主要浏览器。它不适用于我尝试过的任何其他浏览器。
有建议看这个回答:
- 我正在使用图像指令。
- 我的路径是正确的。
- 相对路径和完整路径均未指向渲染图像。
- 这个项目我没有使用 PyCharm,我使用的是 VS Code。
- 除图像问题外,我的文档呈现良好。
Shell make 输出:
\docs>make html
Running Sphinx v2.4.4
loading translations [en]... done
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 11 source files that are out of date
updating environment: [new config] 11 added, 0 changed, 0 removed
reading sources... [100%] user_guide
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] user_guide
generating indices... genindex py-modindexdone
writing additional pages... searchdone
copying images... [100%] images/code_quality.png
copying static files... ... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.
The HTML pages are in build\html.
HTML 输出的图像部分是:
<img alt="_images/code_quality.png" tedc="_images/code_quality.png" />
('tedc' 是我在项目的根 setup.py 模块中定义的应用程序的名称。)
我试图通过创建一个结构与我的生产项目结构相同的一般方式的项目来重现图像指令在 Sphinx 中无法正常工作的问题。
我的生产代码是从 root 调用的,模块位于包中。
我的文档位于 docs 目录中,与此处显示的相同。
我用的是虚拟环境,和这里一样
我使用的库比这里使用的库多得多。
我正在使用 Python 3.8.2
我在练习中没有发现任何有助于解释为什么图像指令在我的生产代码中不起作用的内容。我的生产代码使用相同的指令。
在我尝试重现这个问题并没有成功后,我建议OP尝试删除虚拟环境和docs构建目录,并重新创建他们的虚拟环境,安装需求,并再次构建文档。这解决了问题。