Sto tentando di eseguire la semplice applicazione Kivy su here su OSX.Incorporando CEFPython nell'app Kivy su Mac - l'input da tastiera non funziona
Inizialmente, CEF non è riuscito durante l'inizializzazione. L'uscita era:
igskcicgltgm047:Kivy_Test dslosky$ kivy cefTest4.py
[INFO ] [Logger ] Record log in /Applications/Kivy.app/Contents/Resources/.kivy/logs/kivy_15-07-09_18.txt
[INFO ] [Kivy ] v1.9.0
[INFO ] [Python ] v2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
[INFO ] [Factory ] 173 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_imageio, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] OpenGL version <2.1 NVIDIA-10.2.1 310.41.15f01>
[INFO ] [GL ] OpenGL vendor <NVIDIA Corporation>
[INFO ] [GL ] OpenGL renderer <NVIDIA GeForce GT 750M OpenGL Engine>
[INFO ] [GL ] OpenGL parsed version: 2, 1
[INFO ] [GL ] Shading version <1.20>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <16>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Text ] Provider: sdl2
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available
[CEF Python] Initialize() called
[CEF Python] CefExecuteProcess(): exitCode = -1
[CEF Python] CefInitialize()
2015-07-09 12:20:09.283 python[4355:122290] Internals of CFAllocator not known; out-of-memory failures via CFAllocator will not result in termination. http://crbug.com/45650
[CEF Python] App_OnBeforeCommandLineProcessing_BrowserProcess()
[CEF Python] Command line string for the browser process: --browser-subprocess-path=/Applications/Kivy.app/Contents/Resources/venv/lib/python2.7/site-packages/cefpython3/subprocess --lang=en-US --log-file=debug.log --log-severity=info --enable-release-dcheck --resources-dir-path=/Applications/Kivy.app/Contents/Resources/venv/lib/python2.7/site-packages/cefpython3 --locales-dir-path=/Applications/Kivy.app/Contents/Resources/venv/lib/python2.7/site-packages/cefpython3/locales --remote-debugging-port=51420 --no-sandbox
[0709/122009:WARNING:resource_bundle.cc(269)] locale_file_path.empty()
[0709/122009:FATAL:main_delegate.cc(449)] Check failed: !loaded_locale.empty(). Locale could not be found for en-US
Trace/BPT trap: 5
ho trovato una discussione here che ha suggerito manualmente impostando il flag local_pak
per evitare questo errore. Ho apportato le seguenti modifiche al codice di esempio che inizia sulla riga 150:
# Command line switches set programmatically
g_switches = {
"locale_pak": cefpython.GetModuleDirectory()
+"/Resources/en.lproj/locale.pak",
}
#init CEF
cefpython.Initialize(settings, g_switches)
Questo ha risolto il mio problema di inizializzazione! Viene visualizzato il browser CEF, ma non risponderà a nessun input dalla mia tastiera. Non riesco nemmeno a scorrere usando il trackpad, anche se sono in grado di usarlo per fare clic sui collegamenti.
Ho dato tutto lo sfondo su questo problema nel caso in cui ho preso la strada sbagliata cambiando il flag locale_pak
.
sto usando:
Kivy v1.9.0
Python v2.7.6
cefpython3 v31.2
Vorrei anche ricordare che io sono in grado di eseguire l'esempio wxpython.py
che è confezionato con cefpython3
senza alcun problema.
Qualsiasi aiuto sarebbe molto apprezzato!
Grazie per l'aiuto @Czarek. Conosci un lavoro per questo? O conosci un esempio di Kivy/CEFPython eseguito su Mac? Inoltre, sai perché l'esempio di wxPython non richiede keycode? – dslosky
@dslosky la soluzione è di lavorare sui codici di traduzione, dovrebbe essere un'ora di lavoro. L'esempio wxpython viene eseguito in modalità finestra e tutto viene gestito automaticamente. Kivy viene eseguito in modalità OSR e richiede l'invio di eventi chiave a CEF chiamando SendKeyEvent. –
@dslosky Aggiungi una dichiarazione di stampa in quella funzione e passa attraverso tutti i tasti della tastiera per vedere qual è il codice. Se fai questo lavoro, invia una patch nel tracker dei problemi di cefpython. –