Python comtypes - '_Dispatch'对象不可调用

0 投票
1 回答
947 浏览
提问于 2025-04-17 15:47

我一直在用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中设置兼容模式,可以按照以下步骤操作:

  1. 打开控制面板。
  2. 点击“程序”这个类别。
  3. 点击“运行为以前版本Windows制作的程序”。
  4. 按照故障排除向导的步骤,选择Python命令行作为目标程序。

撰写回答