- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经运行 win32com
来访问 AutoCAD 相当长一段时间了,没有出现任何问题。我了解到应用 makepy
实用程序可以在交互式提示下创建更加用户友好的体验,因此我运行它并添加了“AutoCAD 2006 类型库”。现在,我以前访问的一些常用属性不再可用。考虑代码:
acad = win32com.client("AutoCAD.Application")
doc = acad.Documents.Open('mydoc.dwg')
ms = doc.ModelSpace
count = ms.Count #counts all entities in dwg
for i in range(count):
item = ms.Item(i)
if 'block' in item.ObjectName.lower():
print item.Name
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 462, in
__getattr__ raise AttributeError("'%s' object has no attribute '%s'"
(repr(self),attr))
AttributeError: '<win32com.gen_py.AutoCAD 2006 Type Library.IAcadEntity instance
at 0x34894552>' object has no attribute 'Name'
Name
一直是 block 的可访问属性,直到我运行 makepy
为止。我尝试重新安装 Windows 版 Python,看看是否会重置它,但没有成功。
makepy 是否会在实现时创建另一个我需要删除的文件?
我的许多脚本都依赖于 Name
属性。如果您能提供任何建议或帮助,我们将不胜感激。
最佳答案
此属性错误的主要原因是您的 COM 服务器已从后期绑定(bind)(动态)转变为早期绑定(bind)(静态)。
有两种方法可以解决此问题:
使用动态模块强制您的代码以面向后期绑定(bind)的方式工作。使用示例:
win32com.client.dynamic.Dispatch()
而不是 win32com.client.Dispatch()
使用驼峰式敏感关键字来实现早期绑定(bind)方式。使用示例:
excel.Visible()
而不是 excel.VISIBLE()
或 excel.visible()
因此请尝试使用dynamic.Dispatch
或区分大小写的变量名称。
关于python - 通过 makepy 添加了 AutoCAD 的 typelib,现在 win32com 不适用于 AutoCAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024668/
尝试解析TypeLib注册表项下的文件路径时,我看到了几个(并非全部)注册表值,如下所示: HKEY_CLASS_ROOT\TypeLib\\{EE9CFA8C-F997-4221-BE2F-85A5
这个问题已经有答案了: MS Access VBA Error: Run time error '70' Permission Denied (3 个回答) 已关闭 6 年前。 我的代码有一个问题,似
我有一个 Delphi7。 我用这篇文章:http://www.delphidabbler.com/articles?article=22&part=2/步骤2 现在,我用 LoadTypeLib 创
在 asking about what Visual Studio does to register a COM Library 之后,很明显 VS 为 COM 注册做了两件事: 注册 COM 库 创
我最近需要制作一个互操作程序集。经过一番谷歌搜索后,我发现 tlbimp.exe .我的下一个问题是我的 COM 库没有提供 .tlb文件。进一步的谷歌搜索显示,类型 lib 通常作为资源包含在 ex
即使 TypeLib 完全为空,是否可以找到通常使用组件对象模型 (COM) TypeLib 注册的所有接口(interface)(类、参数等)?如果是这样,你会怎么做?我相信另一个术语是“匿名 CO
我有一些进口: gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk
使用 VC2005,我有 3 个项目要构建: libA(包含类型库,生成 libA.dll):IDL 有一行 library libA { ... libB(包含导入 libA 的类型库,生成 lib
我正在编写 XPCOM 组件。我有我的 idl 文件,它非常简单,仅包含以下内容: #include "nsISupports.idl" [scriptable, uuid(4ead-ba5c-49c
我将“更好”放在引号中,因为这是一个定性问题。几年来我一直在编写 COM DLL,直到最近才发现并成功使用了带有 Typelib 概念的标准 DLL。 使用 COM DLL 代替 DLL+Typeli
我正在我的树莓派上构建 gstreamer 最新版本。我想要 python 绑定(bind),因此在编译 gstreamer 及其插件之前安装了 gobject-introspection-1.0 和
首先声明,我不是 COM 开发人员。我了解标准的 C++、C# 和 Java。 我有一个将从托管 C++ 调用的 C# 库。我使用 Visual Studio 2010 添加了 C++ 类 --> 来
我的公司已经创建了几个 COM 对象,并且他们在 .NET 中愉快地使用它们。但是现在,我们的客户想换成Java。我认为将 JACOB 或 j-interop(我不确定是哪一个)用于某些任务会很有趣,
我已经为我的 VS-2019 Porfessional 安装了所有 MFC 的东西。 我想念以前版本中用于创建简单 IDispatch 包装器的添加新项“来自 Tyspelib 的 MFC 类”。 我
我希望有人能指出我正确的方向。我分几个步骤列出了问题,希望能澄清问题。 我使用 将 C++ DLL 注册到 COM regsvr32 . 然后我使用 tlbimp 与 /主要 C++ DLL 上的属性
我有一个引用 COMSVCSLib 的 VB6 项目,其中一种方法调用 COMSVCSLib 的 SharedPropertyGroupManager.CreatePropertyGroup 传递 锁
我目前正在将 ASP 平台从 Windows 2003 R2 IIS 6 网络服务器迁移到 Windows 2012 R2 IIS 8.5 网络服务器。我正处于将多个站点迁移到两个独立的 2012 年
2010 年之前的 Delphi 版本在 Delphi 环境中有一个可以设置的选项:“所有 v-table 接口(interface)”。这将改变导入类型库时的调用约定。 2010年,这个选项消失了。
我正在尝试为来自 https://bugzilla.gnome.org/show_bug.cgi?id=680569 的 meld 应用补丁我自己,我遇到了这个问题: $ git clone git:
我有一个仅 64 位的 COM DLL,我想使用 heat.exe 从中获取 typelib 信息。但是当我尝试这样做时,我收到错误 193(错误的可执行格式)。 heat.exe 是否仅限 32 位
我是一名优秀的程序员,十分优秀!