Aujourd'hui c'est la première fois que j'utilise Python, donc je suis sûr que ce sera une question facile.Pourquoi ne puis-je pas utiliser les classes Cocoa de mon script Python?
J'ai besoin de convertir ce script Python à partir d'une application en ligne de commande: webkit2png. Le résultat final sera une URL qui renvoie une image de la page Web transmise en tant que paramètre querystring. Je l'ai réalisé sur Windows avec .NET et IE, Gecko et WebKit, mais maintenant j'ai besoin de faire la même chose pour Safari sur OS X.
Je pense que je l'ai converti, mais malheureusement je suis en train de courir un problème d'exécuter le script d'Apache sur 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)
l'erreur est jeté sur la dernière ligne "initWithContentRect ...". L'erreur que je vois est:
<class 'objc.error'>: NSInternalInconsistencyException - Error (1002) creating CGSWindow
args = ('NSInternalInconsistencyException - Error (1002) creating CGSWindow',)
message = 'NSInternalInconsistencyException - Error (1002) creating CGSWindow'
name = u'NSInternalInconsistencyException'
Si je lance le script sur la ligne de commande (après avoir enlevé la substance CGI), il fonctionne parfaitement.
Voici les bibliothèques que je importe:
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()
Il pourrait être un problème de permissions: http://www.mail-archive.com/[email protected]/msg27379.html – kevingessner