2013-02-13 138 views
0

我一直在使用Python的comtypes模塊來自動化Photoshop,但是當我試圖在Windows8上執行命令時,我得到一個TypeError。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 (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返回類型錯誤對象,但我很新奇,所以如果任何人都可以指出我在正確的方向,我會非常感激!

謝謝!

回答

0

看來這是Windows 8的兼容性問題。一旦我設置Python命令行以Windows XP兼容模式執行,comtypes模塊將按預期工作。

這同樣的修復也適用於win32com模塊,我嘗試過但遇到類似的困難。

要設置兼容模式在Windows 8中,你可以按照下列步驟操作:

  1. 轉到您的控制面板。
  2. 點擊「程序」類別。
  3. 點擊'爲以前版本的Windows運行程序'
  4. 單擊故障排除程序,選擇Python命令行作爲目標程序。