为什么我的 IDE 无法自动完成 python-docx?

why my IDE can't Auto-Complete for python-docx?

当我使用 python-docx 时,我的 IDE 和 pycharm wing 一样,无法自动完成它。 此代码

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'

对不起我的英语不好

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

事实上,docx.Document(...)实际上是一个方法,其中returns是docx.document.Document的一个对象class。
(也许他们应该按照命名约定命名这个方法,比如docx.create_document(...))

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

from docx import Document
from docx.document import Document

使用此解决方法可以在您的 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()