readthedocs 和 PyQt5 上的 autodoc

autodoc on readthedocs and PyQt5

我正在编写一个包装 PyQt5 功能的包,并试图将文档放在 readthedocs 上。由于 PyQt5 是一个扩展模块,我模拟了该模块及其 类(手动,因为使用 unittest.mock 会导致元类冲突):

class PyQt5:
    class QtCore:
        @staticmethod
        def qVersion():
            return '5.0.0'
        class QObject:
            pass
    # etc
sys.modules['PyQt5'] = PyQt5

这在本地运行良好。但是,尽管构建在 readthedocs 上没有错误地通过,但没有 autodoc 输出。我错过了什么?

BitBucket 上的项目:https://bitbucket.org/fraca7/qtypy/

在 ReadTheDocs 上:https://readthedocs.org/projects/qtypy/

尽管它 "passing" 构建,如果你仔细查看你的 logs,当它开始调用 sphinx 时,你会看到像 ImportError: No module named 'qtypy' 这样的错误。

当我过去成功完成此操作时,我总是在存储库的顶层有一个 setup.py 文件用于安装包,我相信这是 readthedocs 可以的唯一方法安装软件包。

然后我在 readthedocs 项目管理员 -> 高级设置上启用了,

Install your project inside a virtualenv using setup.py install"

这确保您的模块可以在 sphinx 运行时导入,以便它可以自动生成文档(前提是您已成功模拟 PyQt5)。