问题标签 [cefpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
271 浏览

python-3.x - 关闭cefpython客户端并重新启动一个

在应用程序流程中,我想关闭运行 cefpython 的客户端并打开一个新客户端;我有这个功能

在另一个函数中我有这个调用

浏览器在第一次运行时启动并关闭但不会重新启动。如果我评论该行

在第一个功能中,浏览器确实重新启动,但它卡住了,我无法使用它。提前致谢。

0 投票
2 回答
1650 浏览

python - 使用 --onefile 选项在 PyInstaller 上捆绑 CEFpython

我有一个应用程序,其中有两个可执行文件:Flask-SocketIO-Server 和 CefPython 浏览器。我将这两个可执行文件与 PyInstaller 捆绑在一起。带有--onefile 选项的Flask-Server 和带有--onedir 选项的cefpython,因为我无法使用--onefile。现在我决定只对这两种代码(Flask 和 CEFpython)都可执行,所以我的烧瓶服务器有代码来运行 CEF 图形用户界面:

该代码工作正常,但是当我尝试将此代码与带有 --onefile 选项的 PyInstaller 捆绑在一起时,生成的可执行文件不起作用会导致一些 CEF 依赖项。这里是运行 Pyinstaller 时的错误:

cc(269)] id 20420 没有可用的数据资源 [0727/125110.655:ERROR:content_client.cc(269)] id 20421 没有可用的数据资源 [0727/125110.656:ERROR:content_client.cc(269)] 没有数据资源可用于 id 20422 [0727/125110.656:ERROR:content_client.cc(269)] 没有可用于 id 20417 的数据资源 [0727/125110.680:ERROR:extension_system.cc(72)] 无法解析扩展清单。C:\Users\Ricardo\AppData\Local\Temp_MEI95~1\display_react.py:118:wxPyDeprecationWarning:调用已弃用项 EmptyIcon。使用:类:cc(269)] 没有可用于 id 20417 的数据资源 [0727/125110.680:ERROR:extension_system.cc(72)] 无法解析扩展清单。C:\Users\Ricardo\AppData\Local\Temp_MEI95~1\display_react.py:118:wxPyDeprecationWarning:调用已弃用项 EmptyIcon。使用:类:cc(269)] 没有可用于 id 20417 的数据资源 [0727/125110.680:ERROR:extension_system.cc(72)] 无法解析扩展清单。C:\Users\Ricardo\AppData\Local\Temp_MEI95~1\display_react.py:118:wxPyDeprecationWarning:调用已弃用项 EmptyIcon。使用:类:Icon反而

这是我正在使用的 .spec 文件:

编辑:已解决

感谢@cztomczak,我得到了这个工作。问题不在 PyInstaller 上,而是在 wxpython.py 寻找语言环境、资源和子进程的过程中。尽管所有文件都在“temp/dir/_MEIxxx”上,但 wxpython 正在可执行文件的目录中寻找这些文件。所以我通知代码在临时目录中查找这些文件的方法是:

...

我必须这样做,因为 temp (_MEIxxxx) 上创建的文件夹的名称总是在变化。可能我将来会遇到问题,因为如果应用程序崩溃,_MEIxx 文件夹将不会被删除,如果我尝试重新运行可执行文件,这段代码将有两个 _MEI 文件夹,并且可能根本无法工作,直到有人清理临时目录。

所以,恢复... 将应用程序捆绑到一个文件中: - 将 hook-cefpython3.py(包中可用)粘贴到 Python27/envs/libs/site-package/Pyinstaller/hooks - 使用 --onefile 选项运行 Pyinstaller -告诉 cefpython 代码语言环境、资源和子进程在哪里(locale_dir_path、resource_dir_path、browser_subprocess_path)

0 投票
1 回答
86 浏览

python - 在单独的线程上关闭 wxPython 应用程序会遇到窗口警报

我有一个 Flask-SocketIO 服务器,它在一个单独的线程中初始化一个 GUI。

GUI 基本上是使用 wxPython 的 cefpthon3 示例,但它不是普通的浏览器,它只显示服务器提供的特定页面。目前,我希望在关闭 GUI 时关闭整个应用程序。为了达到这个效果,我在服务器上创建了一个路由(当被调用时)将关闭服务器。

并且在关闭 wxPython 之前调用此路由。但是,此错误出现在服务器关闭之前: 在此处输入图像描述

谁能帮我解决或隐藏这个?

0 投票
1 回答
2616 浏览

chromium-embedded - 本地文件系统中带有 html/js 文件的 Cefpython 应用程序

我正在尝试使用 cefpython 制作一个混合 python-js 应用程序。

我想拥有:

  • cef python 应用程序本地的 JS 和 HTML 文件(例如,在“./html”、“./js”等中)
  • 加载其中一个 HTML 文件作为初始页面
  • 避免文件相互访问(例如目录之间)的任何 CORS 问题

以下似乎可以加载第一页:

但是,然后我遇到了 CORS 问题。我还需要运行网络服务器吗?或者是否有处理本地文件的有效模式?

0 投票
1 回答
224 浏览

python - 在 cefpython 运行时更改 auto_zooming 参数

我有一个 Flask 应用程序,可以在 localhost:3000 上呈现一些页面。为了在每台计算机上正确显示此页面,我使用 chromium 浏览器(基本上是来自 cefpython3 的 WXpython 示例,稍作更改:https ://github.com/cztomczak/cefpython/blob/master/examples/wxpython.py )。但是,在某些具有不同分辨率/缩放级别的计算机上,我必须使用不同的参数“auto_zooming”值重新运行代码才能正确显示页面:

我的问题是:有什么方法可以更改 Cefpython 浏览器的缩放级别,而不必每次我想更改缩放时都重新运行代码?我正在考虑类似'ctrl - +'或'ctrl - -'的东西。

在此先感谢,里卡多

0 投票
0 回答
358 浏览

python - 如何在cefpython中检索JS窗口对象

我正在开发一个基于 cefpython3 的 Python 应用程序。加载网页并创建 JS 上下文后,我需要获取 JS 窗口对象,并检索已创建的函数和对象。我已经阅读了它的文件,但对此一无所知!

有什么解决办法吗?

0 投票
0 回答
257 浏览

python - Cefpython cx_freeze 错误

经过多次尝试,我终于找到了编译我的 Cefpython 代码的方法:

(有 jason 和 urllib.request 以便编译器(py2exe pyinstaller 等)不会出错)

使用 cx_Freeze 但是当我运行 exe cx_freeze 时会发生这种情况:

(来自 debug.log)

我认为这是cefpython的事情,但我不知道。

0 投票
1 回答
418 浏览

python - CEFPython 应用程序 - 如何从 HTML 调用 JSON 文件

我正在使用 CEF 迈出第一步。我知道一些 Python,所以我正在使用 CEFPython。我正在制作一个简单的应用程序,使用 Python 处理来自本地数据库的一些数据,然后将这些数据写入 JSON 文件。目标是最终使用 HTML、JS 和 CSS 很好地显示 JSON 数据。

我开始从 Github 存储库修改tutorial.py文件。首先,我将 HTML 代码放在一个变量中,并以这种方式读取它:

然后我创建一个浏览器:

现在,在 HTML 的标题中,我这样调用 JSON 文件:

我可以在 Chrome 上完美呈现网站以及 JSON 文件。但是使用 CEFPython,我无法以这种方式加载 JSON 文件。我猜可能存在一些CORS问题。

我尝试按照此答案的建议修改浏览器和 cef.Initialize 设置。但这些变化似乎没有任何效果。这就是我尝试设置它们的方式:

所有文件(python 脚本、HTML 和 JSON)都在同一个文件夹中。我正在使用该文件夹上终端中的“python test.py”来运行它。我不想使用完整路径来调用文件,因为该程序将被其他不具有相同路径的人使用。

如何正确加载 JSON 文件?

0 投票
1 回答
811 浏览

python - 如何设置 CEF 窗口图标(在 python 中)

不是 wx、gtk3、pyqt 等...我需要类似的东西:

cef.Initialize(settings=settings) window_info = cef.WindowInfo() browser = cef.CreateBrowserSync(url="localhost:8080/", window_title="Hello World!" icon="myicon.png" )

0 投票
1 回答
316 浏览

python - CEF Python 隐藏浏览器

我创建一个浏览器:

browser = cef.CreateBrowserSync(url=os.path.dirname(os.path.abspath(__file__))+'\\gui.html', window_title="Title")

有什么方法可以随时隐藏和显示窗口吗?