我目前正在通过 read-the-docs 在线获取我的代码文档,但是,让 read-the-docs 处理我的 PyQt4 依赖模块似乎有问题。
我的项目具有以下结构:
pkg
pkg/__init__.py
pkg/modules/
pkg/modules/__init__.py
pkg/modules/somemodules.py
pkg/gui/__init__.py
pkg/gui/someGUImodules.py
我正在使用 sphinx-autodoc 构建不同模块的文档字符串的 html 表示。在我的本地机器上一切正常,但是,因为我需要 mock
PyQt4 阅读文档,我遇到了以下问题: 在我的一个 GUI 类中,我QtGui.QDialog
通过子类
class listSelectorDialog(QtGui.QDialog):
def __init__(self,parent,List):
super(listSelectorDialog,self).__init__(parent)
并listSelectorDialog
通过
class advancedListSelectorDialog(listSelectorDialog):
def __init__(self,parent,List):
super(advancedListSelectorDialog,self).__init__(parent,List)
模拟QtGui
将导致阅读文档告诉我:
class advancedListSelectorDialog(listSelectorDialog):
TypeError: Error when calling the metaclass bases
str() takes at most 1 argument (3 given)
并因此崩溃。我尝试通过
使用 setup.py install 选择在 virtualenv 中安装您的项目来将我的包构建到虚拟环境
中,但事实证明,即使 PyQt4 列在中pip
,您也无法安装它,请参阅https://superuser。 com/questions/679298/how-to-install-pyqt4-and-what-are-the-practical-differences-between-pyqt4-and-py。
到目前为止,我发现的唯一解决方法是,如果环境是 RTD,则不加载 GUI 模块并省略 GUI 模块的文档,但这不应该是最终解决方案。谢谢。