Сегодня я впервые использую 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 ...".Я вижу ошибку:
<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()