使用app = win32com.client.Dispatch('Some.Application')
时,有没有可行的方法在PyCharm中获得代码完成?从API文档中重新键入(或复制粘贴)所有内容相当繁琐,因此创建skeletons也是如此。有没有其他方法让PyCharm知道通过COM提供的接口,特别是如果我可以提供.tlb
文件?或者至少有一些方法可以从TypeLib自动生成这样的骨架(或包装模块?)?
答案 0 :(得分:3)
由于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 Find
一起使用:
现在,除了感觉很脏之外,这种方法依赖于已生成的相关类型,并且代码完成仅限于对象发布的方法,因此我认为它在实践中的实用性可能有些限制;特别是,任何处理代码的人都必须生成代码,否则注释将导致NameError
s。就个人而言,我可能更喜欢使用Jupyter作为实现过程的探索性部分,并且通过the answer mentioned above中概述的最小调整,Jupyter可以扩展为使用win32com
完成代码完成。