Python comtypes - '_Dispatch'对象不可调用
我一直在用Python的comtypes模块来自动化Photoshop,但在Windows 8上执行命令时遇到了TypeError错误。
这些命令在Windows 7上运行得很好。
这是我使用的代码示例:
from comtypes.client import CreateObject
psApp = CreateObject("Photoshop.Application")
#Create a new document- this is where it bombs out!
psApp.Documents.Add(1024, 1024, 72, 'new_source_texture', 2, 1, 1)
这是我收到的错误追踪信息:
Traceback (most recent call last):
File "test.py", line 9, in <module>
psApp.Documents.Add(1024, 1024, 72, 'new_source_texture', 2, 1, 1)
TypeError: '_Dispatch' object is not callable
我怀疑这可能与comtypes返回了错误类型的对象有关,但我还是个新手,如果有人能给我一些指引,我会非常感激!
谢谢!
1 个回答
0
看起来这是一个与Windows 8兼容性有关的问题。一旦我把Python命令行设置为以Windows XP兼容模式运行,comtypes模块就正常工作了。
这个解决办法同样适用于win32com模块,我尝试过,但也遇到了类似的问题。
在Windows 8中设置兼容模式,可以按照以下步骤操作:
- 打开控制面板。
- 点击“程序”这个类别。
- 点击“运行为以前版本Windows制作的程序”。
- 按照故障排除向导的步骤,选择Python命令行作为目标程序。