如何以跨平台方式仅使用Python提取ActiveX COM DLL的GUID?
我遇到了pythoncom
pywin32
。它有一个LoadTypeLib
函数可以做到这一点:
import pythoncom
dll = pythoncom.LoadTypeLib("C:\\path\to\\my.dll")
print str(dll.GetLibAttr()[0])
这比依赖外部CLI应用程序的当前解决方案更好,但是跨平台解决方案会更好,因为我不相信pywin32可以轻松地安装在Linux CI上。
答案 0 :(得分:0)
我最终使用了精彩的comtypes
包:
from comtypes.typeinfo import LoadTypeLibEx
lib = LoadTypeLibEx("C:\\path\to\\my.dll")
print lib.GetLibAttr().guid
代码实际上是一样的;它从LoadTypeLib
字面上调用相同的OleAut32
,因此它仅限Windows,但comtypes
可通过pip安装,这使得分发更容易。