今天是我第一次使用Python,所以我相信這將是一個簡單的問題。爲什麼我不能從我的Python腳本中使用Cocoa類?
我需要從命令行應用程序轉換此Python腳本:webkit2png。最終結果將是一個URL,它返回傳遞給它的網頁的圖像作爲查詢字符串參數。我已經使用.NET和IE,Gecko和WebKit在Windows上實現了這一點,但現在需要爲OS X上的Safari執行相同的操作。
我想我已經轉換了它,但不幸的是我正在運行在OS X上運行Apache的腳本時出現問題:
app = AppKit.NSApplication.sharedApplication()
# create an app delegate
delegate = AppDelegate.alloc().init()
AppKit.NSApp().setDelegate_(delegate)
# create a window
rect = Foundation.NSMakeRect(0,0,100,100)
win = AppKit.NSWindow.alloc()
win.initWithContentRect_styleMask_backing_defer_ (rect,
AppKit.NSBorderlessWindowMask, 2, 0)
錯誤在最後一行「initWithContentRect ...」上拋出。我看到的錯誤是:
<class 'objc.error'>: NSInternalInconsistencyException - Error (1002) creating CGSWindow
args = ('NSInternalInconsistencyException - Error (1002) creating CGSWindow',)
message = 'NSInternalInconsistencyException - Error (1002) creating CGSWindow'
name = u'NSInternalInconsistencyException'
如果我在命令行(刪除CGI的東西后)運行腳本,它運行完美。
這裏是我導入庫:
import cgi
import cgitb; cgitb.enable() # for troubleshooting
import sys
try:
import Foundation
import WebKit
import AppKit
import objc
except ImportError:
print "Cannot find pyobjc library files. Are you sure it is installed?"
sys.exit()
這可能是一個權限問題:http://www.mail-archive.com/[email protected]/msg27379.html – kevingessner 2010-09-13 21:46:26