如何在Python 3.12.0中使用CEF(Chromium嵌入式框架)?

问题描述 投票:0回答:1

如何在Python 3.12.0中使用CEF?因为当我尝试在Python中使用CEF时,它告诉我该版本不受支持。是否有适用于 Python 3.12.0 的 CEF 版本或任何等效版本?

版本:

Python:v3.12.0, VueJS:v3.4.15

我的代码:

import sys
from cefpython3 import cefpython as cef


VUE_APP_PATH = "app"
INDEX_HTML_FILE = VUE_APP_PATH + "/index.html"

settings = {
    "context_menu": {"enabled": False},
    "browser_subprocess_path": "%s/%s" % (cef.GetModuleDirectory(), "subprocess"),
    "auto_zooming": "system",
    "remote_debugging_port": 0,
}

def initialize_cef():
    sys.excepthook = cef.ExceptHook
    cef.Initialize(settings=settings)
    cef.MessageLoop()

def run_vue_app():
    browser = cef.CreateBrowserSync(url=INDEX_HTML_FILE, window_title="Vue App in CEF")
    browser.SetClientHandler(LoadHandler())
    browser.SetClientHandler(RequestHandler())
    cef.MessageLoop()
    cef.Shutdown()

class LoadHandler(object):
    def OnLoadError(self, browser, frame, errorCode, errorText, failedUrl):
        print("Error: {0}, {1}, {2}, {3}".format(errorCode, errorText, failedUrl, frame.GetUrl()))

class RequestHandler(object):
    def OnBeforeBrowse(self, browser, frame, request, is_redirect):
        url = request.GetUrl()
        if url.startswith("http://") or url.startswith("https://"):
            cef.QuitMessageLoop()
            cef.Shutdown()
            return False
        return True

if __name__ == "__main__":
    initialize_cef()
    run_vue_app()
python vue.js chromium-embedded
1个回答
0
投票

您不需要发布整个代码,错误将在

import
模块中引发

实际上,CEFPython仅支持Python 3.9或以下版本,MAC有一个非官方版本支持3.10

参见:

CEFPython 发布

我有同样的问题,但我无法使用v3.9,我回答是因为我无法写评论

我会看这个问题,谢谢,祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.