Почему я не могу использовать классы Какао из моего скрипта Python?

Сегодня я впервые использовал Python, поэтому я уверен, что это будет легкий вопрос.

Мне нужно преобразовать этот скрипт Python из приложение командной строки: webkit2png . Конечным результатом будет URL-адрес, который возвращает изображение веб-страницы, переданное в него в качестве параметра строки запроса. Я добился этого в Windows с .NET и IE, Gecko и WebKit, но теперь нужно сделать то же самое для Safari в OS X.

Я думаю, что преобразовал его, но, к сожалению, у меня проблема с запуском сценария из Apache в OS X:

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 ...". Я вижу следующую ошибку:

: 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()

1
задан Matt Brindley 13 September 2010 в 21:41
поделиться