Sphinx Python ImportError:无法导入nam

2024-09-29 23:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Sphinx。当执行命令make html时,我定义抽象类或从抽象类派生的文件得到一个错误。在

错误

File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 529 
in import_object
    __import__(self.module)
File "/home/pi/.../abstractNode.py", line 6, in <module>
    from abc import ABC, abstractclassmethod
ImportError: cannot import name ABC

参考代码

最小示例:

文件:abstractNode.py

^{pr2}$

文件:Node.py

from foo.bar import abstractNode

class Node(abstractNode):
    '''
    implementation of abstract parent
    '''

    def moduleNode(self, parameter=[]):
        '''
        implementation written here
        '''
        pass

结果是,这些抽象类依赖关系的文档几乎是空的,而不使用ABC的类就可以了。在

导入其他包没有任何问题。在


Tags: 文件infrompyimportselfnode错误
1条回答
网友
1楼 · 发布于 2024-09-29 23:26:38

感谢pierre-de-buyl和{a2}。你确实发现了问题:

尽管ABC和抽象类是在2.7 documentation中定义的,并且存在于/usr/lib/python2.7中,但是必须强制sphinx使用python3.x

不幸的是,我还没有找到一个优雅的方法来做到这一点,但我下面描述的方法解决了这个问题:

  1. 卸载斯芬克斯
  2. 用python3安装狮身人面像:

    sudo apt-get install python3-sphinx
    

    或者

    ^{pr2}$

    (与python-sphinx或{}相反)

  3. 按照您习惯的方式创建sphinx文档

(也许有人有一个更好的主意来强迫斯芬克斯使用python3.x?)在

相关问题 更多 >

    热门问题