使用时app = win32com.client.Dispatch('Some.Application')
,PyCharm中有没有可行的方法来完成代码?必须重新输入(或复制粘贴)API 文档中的所有内容是相当乏味的,因此创建骷髅是。是否没有其他方法可以让 PyCharm 了解通过 COM 提供的接口,特别是如果我可以提供.tlb
文件?或者至少有某种方法可以从 TypeLib 自动生成这样的骨架(或包装模块?)?
由于 PyCharm 无法知道运行时类型app
,你不应该期望得到代码完成app
直接地;至少在他们决定添加从类型库生成代码的内置支持之前是这样。
但是,您可以利用以下事实:win32com
根据类型库隐式生成代码,如中所述这个答案的第一部分,与 PyCharm 对类型提示的支持一起,获得 COM 方法的代码完成。
- 确保Python类型已经生成;它们的位置由 COM 对象的 GUID 确定。例如,我的计算机上的 Microsoft Word 2016 的类型可在
C:\Users\username\appdata\local\temp\gen_py\3.6\00020905-0000-0000-c000-000000000046x0x8x7\
.
- 将此文件夹添加到您的 PyCharm Python 解释器的路径中;参见例如这个答案.
- 导入您想要完成代码的模块。
在下面的屏幕截图中,我们将这种方法与 Word 结合使用Find:
现在,除了感觉肮脏之外,这种方法还依赖于已生成的相关类型,并且代码完成仅限于对象发布的方法,因此我认为它在实践中的用处可能会受到一些限制;特别是,任何处理代码的人都必须生成代码,否则注释将导致NameError
s。就我个人而言,我可能更喜欢使用 Jupyter 来进行实施过程的探索部分,并在中概述的最小调整上面提到的答案,Jupyter 可以扩展为具有完整的代码完成功能win32com
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)