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 вопроса:

  1. Есть ли способ с помощью wx.html2, чтобы показать встраивание содержимого HTML JavaScript
  2. если нет, то знаете ли вы, что может вызвать сбой запущенного интерфейса? Я полагаю, это очень важно, но я даже не уверен.

Пожалуйста, простите мои английские ошибки, кстати, потому что я не родной.



1 ответ

Кажется, что ваша среда Python не ведет себя стандартным образом, вы не предоставляете подробности, как называется ваш код Python.

Ошибка в cefpython выдается в этой строке:

if "--debug" in sys.argv:
    application_settings["debug"] = True

https://github.com/cztomczak/cefpython/blob/bbf3597ba47f72db66cf304ab8eb3ccfc3a7130c/src/cefpython.pyx#L631

Вы должны выяснить, почему ваш Python не определил "sys.argv". Вы можете легко исправить это с помощью следующего кода: sys.argv = [] перед звонком cef.Initialize, однако вы можете столкнуться с другими проблемами из-за нестандартной среды Python.

Другие вопросы по тегам