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

问题描述 投票:0回答:4

当我使用 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

类型错误:init() 缺少 2 个必需的位置参数:“元素”和“部分”

我很抱歉我的英语不好

python python-docx
4个回答
2
投票

事实上,

docx.Document(...)
实际上是一个函数,它返回
docx.document.Document
类的对象。
(也许他们应该按照命名约定来命名这个方法,比如 docx.create_document(...))

因此,您应该使用以下两个导入,以获得

docx.document.Document
类内容的可见性:

from docx import Document
from docx.document import Document

1
投票

在后一种情况下,您错误地导入了

docx.document.Document
而不是
docx.Document
Document
中的
docx.document
类具有不同的调用签名,无论如何都不是您想要的:)


1
投票

对我来说,只有以下内容适用于 PyCharm 2023.1:


from docx import Document as CreateDocument
from docx.document import Document

document: Document = CreateDocument()

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.