Sphinx Python导入错误:无法导入名称
我正在使用。执行命令Sphinx Python导入错误:无法导入名称,python,python-sphinx,Python,Python Sphinx,我正在使用。执行命令make html时,定义抽象类或从抽象类派生的文件出错 错误 文件:Node.py from foo.bar import abstractNode class Node(abstractNode): ''' implementation of abstract parent ''' def moduleNode(self, parameter=[]): ''' implementation written
make html
时,定义抽象类或从抽象类派生的文件出错
错误
文件:Node.py
from foo.bar import abstractNode
class Node(abstractNode):
'''
implementation of abstract parent
'''
def moduleNode(self, parameter=[]):
'''
implementation written here
'''
pass
结果是,这些抽象类依赖关系的文档几乎为空,而不使用ABC的类则可以
导入任何其他包都没有问题。感谢和。您确实发现了问题:
尽管ABC和抽象类在中定义,并且在/usr/lib/python2.7中存在,但您必须强制sphinx使用Python3.x
不幸的是,我还没有找到一种优雅的方法来解决这个问题,但我下面介绍的方法解决了这个问题:
sudo apt-get install python3-sphinx
或
(与pythonsphinx
或pip安装相比)
(也许有人有更好的办法强迫sphinx使用Python3.x?与
foo.py
相关的abc
模块在哪里?这可能是循环进口吗?没有软件包的源代码是不可能的。是python标准库的一部分,因此它位于/usr/lib/python[version]
,版本为2.7、3.5或任何其他已安装的python版本,与其他模块(如os
或pickle
)一起使用。这就是为什么我没有在问题中写它,也是为什么我如此困惑的原因模块ABC
中的类ABC
比Python 2.7更新。它不适用于Python2,只适用于Python3。您的代码适用于Python3.4或更高版本(ABC类是在3.4中添加的),但您可以使用Python2.7运行Sphinx。
from foo.bar import abstractNode
class Node(abstractNode):
'''
implementation of abstract parent
'''
def moduleNode(self, parameter=[]):
'''
implementation written here
'''
pass
sudo apt-get install python3-sphinx
sudo pip3 install sphinx