当使用app = win32com.client.Dispatch('Some.Application')
时,有什么可行的方法在PyCharm中获得代码完成?从API文档重新输入(或复制粘贴)所有内容是相当繁琐的,因此创建skeletons即可。有没有其他办法让PyCharm知道通过COM提供的接口,特别是如果我可以提供一个.tlb
文件?还是至少有某种方式可以从TypeLib中自动生成这样一个框架(或一个包装模块?)?如何在PyCharm中获得COM编程的代码完成?
2
A
回答
3
由于PyCharm无法知道app
的运行时类型,因此您不应期望直接在app
上获得代码完成;至少直到他们决定添加内置的支持来从类型库生成代码。
但是,您可以利用win32com
基于the first part of this answer中描述的类型库隐式生成代码以及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解释器的路径中;见例如this answer。
- 导入您想要代码完成的模块。
在下面的截图中,我们使用这种方法与Word的Find
:
现在,除了感觉很脏,这种方法依赖于已产生的相关类型和代码完成仅限于对象发布的方法,所以我认为它在实践中的用处可能有所限制;特别是,任何使用代码的人都必须生成代码,否则注释会导致错误。就我个人而言,我可能更愿意使用Jupyter作为实施过程的探索性部分,并且通过the answer mentioned above中概述的最小调整,Jupyter可以扩展为具有完整的代码完成win32com
。
+0
听起来像是最好的选择,谢谢 –
相关问题
- 1. 如何在PyCharm中获得Tensorflow的代码完成?
- 2. 如何在Eclipse中获得Node.js的代码完成?
- 3. 如何让PyCharm在方法中自动完成代码?
- 4. 如何在Android Studio中获得Eclipse样式代码完成
- 5. PyCharm进口和代码完成
- 6. 如何获得卡布奇诺和objective-j的代码完成?
- 7. 如何从PyCharm自动完成Softimage代码?
- 8. Pycharm错误“进程完成退出代码-1073740791(0xC0000409)”
- 9. 带内省绑定的pycharm中的代码完成
- 10. UrlFetchApp.fetch - 缺少网页代码。如何获得完整的代码?
- 11. pycharm代码完成/语法高亮在HAML文件的Django
- 12. 如何获得这个jQuery自动完成代码在FireFox中工作?
- 13. 如何在gcc中获得完整的汇编程序输出?
- 14. 如何在Pycharm中运行代码
- 15. 如何在Delphi 2010中更快地完成代码完成?
- 16. 如何在android studio中编辑从editText获得的Java代码
- 17. 正在完成反编译代码
- 18. 如何在使用&get_instance()时获得完整的CI Eclipse代码?
- 19. 如何编辑该代码在AJAX自动完成的jQuery
- 20. PyCharm代码完成:提示未定义的对象属性
- 21. 围绕某些元素的PyCharm代码完成红色矩形?
- 22. PyCharm代码完成提供了过时的建议
- 23. VS代码中的Firebase代码完成?
- 24. TensorFlow中C代码的代码完成
- 25. Aptana中的代码完成
- 26. 如何生成COM interop代理到C#源代码中?
- 27. PyCharm/Python。代码无法运行。立即收到“正在完成退出代码为0的流程”
- 28. 我如何使得Resharper尊重camelcase代码完成的资金?
- 29. Pycharm:代码完成没有给出建议
- 30. 可以从json模式完成代码完成的编辑器
强烈的相关:[如何使win32com-autocompletion?](https://stackoverflow.com/q/26990655/321973) - 我注意到我倾向于在几年后再次提出类似的问题......另一个问题是然而询问[tag:ipython]和'EnsureDispatch'。 –