python - 狮身人面像 : "no module named compat"

标签 python python-sphinx

我们的 Travis CI 测试刚刚开始随机中断:

https://travis-ci.org/Gallopsled/pwntools/builds/343962397

错误消息:

Could not import extension sphinxcontrib.autoprogram (exception: No module named compat)

问题似乎在于我们的 Sphinx 依赖项之一依赖于已弃用的功能:https://github.com/sphinx-contrib/autoprogram/issues/1

我该如何解决这个问题?

最佳答案

我们可以使用下面的代码动态地重新注入(inject)模块及其内容,将其放入 Sphinx conf.py 中:

try:
    import sphinx.util.compat
except ImportError:
    import sys
    import types
    import sphinx.util
    import docutils.parsers.rst
    class compat(types.ModuleType):
        Directive = docutils.parsers.rst.Directive
    sphinx.util.compat = compat('sphinx.util.compat')
    sys.modules['sphinx.util.compat'] = sphinx.util.compat

关于python - 狮身人面像 : "no module named compat",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48892261/

相关文章:

python - 在多个列中扩展 dask DF 中的类似列表的列

python - skimage 模块缺乏记录的功能

python - 如何有条件地将文件包含在 Sphinx 'toctree' 中?

django - Django 文档字符串和 Sphinx 的未知解释文本角色 "setting"

python - 覆盖 Sphinx autodoc "Alias of"以导入私有(private)类?

python - 如何在 matplotlib 中的 FigureCanvas 顶部显示 GTK 小部件

python - 为什么从一个模块中导入一个函数比整个模块本身需要更长的时间?

python - 在尝试创建 django-admin startproject :No module name django-admin 时

python - 如何用狮身人面像制作两列

python-sphinx - 使用 Read The Docs & Sphinx 和 ReadTheDocs 主题时删除查看源链接