2024-10-02 22:35:37 发布
网友
当使用app = win32com.client.Dispatch('Some.Application')时,在PyCharm中有什么可行的方法来完成代码吗?从API文档中重新键入(或复制粘贴)所有内容是相当乏味的,创建skeletonsbe也是如此。有没有其他方法可以让PyCharm知道通过COM提供的接口,尤其是如果我可以提供一个.tlb文件的话?或者至少有什么方法可以自动生成这样的骨架(或者包装模块?)从类型库?在
app = win32com.client.Dispatch('Some.Application')
.tlb
因为PyCharm无法知道app的运行时类型,所以您不应该期望直接在app上完成代码;至少在他们决定添加从类型库生成代码的内置支持之前是这样。在
app
但是,您可以利用win32com根据the first part of this answer中描述的类型库隐式生成代码,以及PyCharm对类型暗示的支持,从而在COM方法上完成代码。在
win32com
C:\Users\username\appdata\local\temp\gen_py\3.6\00020905-0000-0000-c000-000000000046x0x8x7\
在下面的屏幕截图中,我们对Word的^{}使用这种方法:
现在,除了感觉脏之外,这种方法依赖于已经生成的相关类型,代码的完成仅限于对象发布的方法,所以我认为它在实践中的有用性可能会受到一定的限制;特别是,任何人在编写代码时都必须生成代码,或者注释将导致NameErrors。就个人而言,我可能更喜欢使用Jupyter作为实现过程的探索性部分,并且在the answer mentioned above中列出的最小调整下,Jupyter可以扩展为使用win32com完成完整的代码。在
NameError
因为PyCharm无法知道
app
的运行时类型,所以您不应该期望直接在app
上完成代码;至少在他们决定添加从类型库生成代码的内置支持之前是这样。在但是,您可以利用
win32com
根据the first part of this answer中描述的类型库隐式生成代码,以及PyCharm对类型暗示的支持,从而在COM方法上完成代码。在C:\Users\username\appdata\local\temp\gen_py\3.6\00020905-0000-0000-c000-000000000046x0x8x7\
。在在下面的屏幕截图中,我们对Word的^{} 使用这种方法:
现在,除了感觉脏之外,这种方法依赖于已经生成的相关类型,代码的完成仅限于对象发布的方法,所以我认为它在实践中的有用性可能会受到一定的限制;特别是,任何人在编写代码时都必须生成代码,或者注释将导致
NameError
s。就个人而言,我可能更喜欢使用Jupyter作为实现过程的探索性部分,并且在the answer mentioned above中列出的最小调整下,Jupyter可以扩展为使用win32com
完成完整的代码。在相关问题 更多 >
编程相关推荐