【问题标题】:why my IDE can't Auto-Complete for python-docx?为什么我的 IDE 不能为 python-docx 自动完成?
【发布时间】:2017-03-23 06:03:26
【问题描述】:

当我使用 python-docx 时,我的 IDE 就像 pycharmwing 一样,无法自动完成它。 这段代码

from docx import Document

asd = Document()
asd.add_heading("test")
asd.save("cao.docx")

当我输入 asd. add_heading 无法自动完成。

from docx.document import Document  

asd = Document()
asd.save()
this code can Auto-Complete
but atention

TypeError: init() 缺少 2 个必需的位置参数:'element' 和 'part'

我很抱歉我的英语不好

【问题讨论】:

    标签: python python-docx


    【解决方案1】:

    在后一种情况下,您错误地导入了docx.document.Document 而不是docx.Documentdocx.document 中的 Document 类具有不同的调用签名,无论如何都不是您想要的:)

    【讨论】:

      【解决方案2】:

      事实上,docx.Document(...)实际上是一个方法,它返回docx.document.Document类的一个对象。
      (也许他们应该按照命名约定来命名这个方法,说点什么像 docx.create_document(...))

      因此,您应使用以下两个导入,以获取 docx.document.Document 类内容的可见性:

      from docx import Document
      from docx.document import Document
      

      【讨论】:

      • 这应该是公认的答案,因为它也显示了如何解决问题。
      【解决方案3】:

      使用此解决方法在您的 IDE 中拥有自动完成功能,而不是获得 TypeError: init() missing 2 required positional arguments: 'element' and 'part'

      from docx.document import Document
      try:
          document = Document()
      except TypeError:
          from docx import Document
          document = Document()
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-17
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 2017-05-04
        • 2012-02-10
        • 2020-06-05
        • 2020-02-23
        相关资源
        最近更新 更多