2016-03-29 17 views
3

私は現在、自分のコードのドキュメントをread-the-docs経由でオンラインにしていますが、PyQt4依存モジュールを処理するread-the-docsを入手するのは問題があるようです。私は、異なるモジュールのドキュメンテーション文字列のHTML表現を構築するためにスフィンクス-autodocのを使用していますPyQt 4の読み込みでの読み込み

pkg 
pkg/__init__.py 
pkg/modules/ 
pkg/modules/__init__.py 
pkg/modules/somemodules.py 
pkg/gui/__init__.py 
pkg/gui/someGUImodules.py 

私のプロジェクトは以下の構造を有しています。私が読ん--docsの上mock PyQt4する必要があるため、私のローカルマシンのすべてが、しかし、正常に動作し、私は次のような問題に遭遇した:私のGUIクラスのいずれかで、私は

class listSelectorDialog(QtGui.QDialog): 

    def __init__(self,parent,List): 
     super(listSelectorDialog,self).__init__(parent) 

listSelectorDialog経由QtGui.QDialogをサブクラス化QtGuiのモック

class advancedListSelectorDialog(listSelectorDialog): 

    def __init__(self,parent,List): 
     super(advancedListSelectorDialog,self).__init__(parent,List) 

を経由して私に言って読み取り、ドキュメントになります:

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モジュールをロードしないことですが、これは最終的な解決策ではありません。ありがとう。

+0

Qtモジュールをサブクラス化しようとすると、まったく同じ問題が発生します。 – hoju

+0

不幸にも、GUIモジュールを現在文書化しないことに決めました。私は余分な時間があるときにそれを理解しようとします。 – alexblae

答えて

-1

私はPyQt5/py3(MagickMockとのメタクラス衝突)で同様の問題がありました。私の問題を回避するには、手動でunittest.mock使用するのではなく、conf.pyでモジュールを模擬することです:

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

これは、インポート/メタクラスの競合の問題が消えます。残念なことに、autodocはまだ動作しません(出力なし)。ただし、ビルドは失敗します。

退屈です。

関連する問題