我有一个非常非常具体的问题。
我试图找出一种在我的应用程序中嵌入HTML浏览器的方法,以便显示一些包含JavaScript的HTML内容。
我尝试使用wx.html2完成此操作,但javascript部分似乎无法正常工作。
因此,我决定尝试通过提供的wxPython.py演示示例来尝试CEFPython。
最初,它在我设计的UI中效果很好。
但是,问题在于此UI旨在作为一种“插件UI”从另一个应用程序调用。并且从此应用程序启动wxPython UI时,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'
所以最后我有两个问题:
wx.html2是否有办法显示嵌入javascript的HTML内容
如果不是,您是否有什么线索会导致启动的UI崩溃?我想这是一个线程问题,但我什至不确定。
顺便说一句,请原谅我的英语错误,因为我不是本地人。
最佳答案
看来您的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环境,您仍然可能会遇到其他问题。关于python - 从应用程序调用时CEFPython不会初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49195814/