在非工作 Python 脚本上执行 sphinx

Execute sphinx on a non-working Python script

我正在努力学习Docker。

我有一个使用 mod 库的 Python 脚本, 安装在我的系统上。目标是在 Docker 容器内执行它。我写了 Docker 文件。我在其中添加了这一行:

RUN pip install --trusted-host pypi.python.org -r requirements.txt

在 requirements.txt 中我写了 mod

它工作正常,并且在容器内安装 mod 并且代码运行良好。

现在,我想在同一个脚本上生成 Sphinx 文档。我知道 Sphinx 的工作原理(基础知识)。我用 sys.path.insert(0, os.path.abspath('..')) mod 化 conf.py 并且它指向包含 Script.py 的目录(以及 Dockerfile 和 requirements.txt),然后我添加了index.rst 中的以下内容:Script.py 位于名为 DockerPython:

的文件夹中
.. automodule:: DockerPython.Script
   :members:

当我启动 make html 时(与其他示例一起工作正常),我得到以下信息:

Running Sphinx v2.0.1
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 1 added, 0 changed, 0 removed
reading sources... [100%] index
WARNING: autodoc: failed to import module 'Script' from module 'DockerPython'; the following exception was raised:
No module named 'mod'
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index
generating indices... genindex
writing additional pages... search
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded, 1 warning.

The HTML pages are in build\html.

而我得到的页面是空的。

所以,我的问题是:Sphinx 能否在无法编译的脚本上执行并且 运行 在本地 Python 上运行良好(因为本地未安装 lib)?

如何让它在通过 Docker 使用特定设置运行的脚本上运行?谢谢。

经过两个小时的冲浪,我终于弄明白了。

我只需要将这一行添加到 conf.py:

autodoc_mock_imports = ['mod']