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

时间:2013-02-13 19:17:42

标签: python comtypes

我一直在使用Python的comtypes模块来自动化Photoshop,但是当我尝试在windows8上执行命令时,我收到了一个TypeError。

这些相同的命令在windows7上运行良好。

这是我正在使用的代码示例:

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 :(得分:0)

这似乎是Windows 8的兼容性问题。一旦我将Python命令行设置为使用Windows XP兼容模式执行,comtypes模块就会按预期工作。

同样的修复也适用于win32com模块,我试过但遇到了类似的困难。

要在Windows 8中设置兼容模式,您可以按照以下步骤操作:

  1. 转到您的控制台。
  2. 点击“计划”类别。
  3. 点击“为以前版本的Windows运行程序”
  4. 逐步解决问题排查工具,选择Python命令行作为目标程序。