在非工作 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']
我正在努力学习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']