Sphinx 1.8 Typerror Метаклассовый конфликт, Python 2.7 - PullRequest
0 голосов
/ 17 декабря 2018

Я работаю с генерацией документов sphinx 1.8 для моего проекта в python 2.7.У меня есть класс, унаследовавший три класса:

class Meta(type(QtGui.QWidget), type(BaseClass)):
    pass

class UI(QWidget, BaseClass, BaseWidget)
    __metaclass__ = Meta

    def __init__(self):
        QtGui.QWidget.__init__(self)
        BaseClass.__init__(self)
        BaseWidget.__init__(self)

В приложении Python ошибки нет.

Но с sphinx 1.8 , следующеегенерируется ошибка: Ошибка типа: конфликт метаклассов: метакласс производного класса должен быть (нестрогим) подклассом метаклассов всех его баз .

Может кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 18 декабря 2018

Проблема была в том, что Sphinx использовал Python 3 вместо Python 2.7.У меня есть другой проект, работающий на Python 3. Чтобы устранить ошибку, заставьте Sphinx использовать версию Python 2.7.В make.bat file: удалите оператор if и явно укажите путь SPHINXBUILD:

@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

set SPHINXBUILD= "C:\\Python27\\Scripts\\sphinx-build.exe"

set SOURCEDIR=.
set BUILDDIR=_build

Это больше не приведет к ошибке метакласса.

...