2013-02-13 2 views
0

Я использую модуль comtypes для Python для автоматизации Photoshop, но я получаю TypeError, когда пытаюсь выполнить команды на windows8.Python comtypes - объект _Dispatch не вызываем

Эти же команды отлично работают на 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 я получаю:

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 возвращающимся неправильный тип объект, но я довольно newb, поэтому, если кто-то может указать мне в правильном направлении, я бы очень признателен!

Спасибо!

ответ

0

Кажется, это проблема совместимости с Windows 8. После того, как я установил командную строку Python для выполнения в режиме совместимости с Windows XP, модуль comtypes работал должным образом.

Это же исправление относится также к модулю win32com, который я пробовал, но испытывал схожие трудности.

Для установки режима совместимости в Windows 8, вы можете выполнить следующие действия:

  1. Перейти к панели управления.
  2. Нажмите на категорию «Программы».
  3. Нажмите «Запустить программы, сделанные для предыдущих версий окон»
  4. Пройдите через средство устранения неполадок, выбрав командную строку Python в качестве целевой программы.
Смежные вопросы