CEFPython не инициализируется при вызове из приложения
У меня очень очень специфическая проблема. Я пытаюсь найти способ встроить браузер HTML в мое приложение, чтобы показать сгенерированный контент HTML с включенным JavaScript.
Я пытался сделать это с помощью wx.html2, но часть javascript, похоже, просто не работает. Поэтому я решил попробовать CEFPython на примере предоставленной демонстрации wxPython.py.
Сначала он отлично работал в пользовательском интерфейсе, который я разработал.
НО, проблема в том, что этот пользовательский интерфейс предназначен для вызова из другого приложения, в качестве своего рода "подключаемого пользовательского интерфейса". И при запуске моего пользовательского интерфейса wxPython из этого приложения, он падает, как только инициализируется cef (через:
sys.excepthook = cef.ExceptHook
settings = {
"debug": True,
"log_severity": cef.LOGSEVERITY_INFO,
"log_file": "debug.log",
}
cef.Initialize(settings=settings)
app = CefApp(False)
app.MainLoop()
del app
cef.Shutdown()
Я продолжаю получать эту ошибку:
Python exception: AttributeError
'module' object has no attribute 'argv'
Traceback (most recent call last):
File "<string>", line 248, in <module>
File "<string>", line 36, in main
File "cefpython_py27.pyx", line 626, in cefpython_py27.Initialize
(cefpython_py27.cpp:99136)
AttributeError: 'module' object has no attribute 'argv'
Итак, в конце у меня есть 2 вопроса:
- Есть ли способ с помощью wx.html2, чтобы показать встраивание содержимого HTML JavaScript
- если нет, то знаете ли вы, что может вызвать сбой запущенного интерфейса? Я полагаю, это очень важно, но я даже не уверен.
Пожалуйста, простите мои английские ошибки, кстати, потому что я не родной.
1 ответ
Кажется, что ваша среда Python не ведет себя стандартным образом, вы не предоставляете подробности, как называется ваш код Python.
Ошибка в cefpython выдается в этой строке:
if "--debug" in sys.argv:
application_settings["debug"] = True
Вы должны выяснить, почему ваш Python не определил "sys.argv". Вы можете легко исправить это с помощью следующего кода: sys.argv = []
перед звонком cef.Initialize,
однако вы можете столкнуться с другими проблемами из-за нестандартной среды Python.