Releases: cztomczak/cefpython
CEF Python v66.1 for Windows with Python 3.8 / 3.9 support
Installation
You can install the pypi/cefpython3 package using the pip tool. You can also download packages for offline installation that are attached in this release. The command to install with pip is:
pip install cefpython3==66.1
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 / 3.8 / 3.9 | Yes | Yes | Windows 7+ (Note that Python 3.9 supports Windows 8.1+) |
Thank you to the sponsor
Thank you to Fivestars Loyalty, Inc. for sponsoring this release.
Changes and notes for this release
- Support Python 3.8 and Python 3.9 (#546, #593, #594).
- Update int range detection for Python 3 (#603).
- Fix issues with urls containing special characters (#384). Backward compatibility break.
- Add snippets in the "examples/snippets/" directory.
- Add PySide2 support in the qt.py example (#438).
- Update kivy_.py example to support Windows and Mac (#573)
- Update the pysdl2.py example to support Python 3 (#543).
- Fix tkinter focus issues on Windows (#535).
- Fix focus issues in qt.py example (#404).
- Fix Request.GetPostData() throwing UnicodeEncodeError (#517).
- Fix V8ContextHandler.OnContextCreated and OnContextReleased never being called (#484).
- Fix crash when setting a cookie with invalid domain (#459).
- Update screenshot.py example. Disable GPU acceleration and add performance enhancing switches in OSR. (#463).
- Fix maximize/restore events in tkinter_.py example.
- Fix the bug of loading shared libraries. (#561).
- Fix pango library wrong include path (hb.h: No such file or directory) (#589).
- Fix pyinstaller 4.0 compatibility.
- Update automate.py to add --use-ccache, --proprietary-codecs and --cef-git-url options (#474, #475, #483).
CEF Python v49.0 for Windows with WinXP/Vista support
A special release for legacy systems
This is a special release only for Windows for legacy systems such as Windows XP and Vista. This release includes Chromium 49.0.2623.110 which is the latest Chromium version that supports WinXP/Vista.
Installation
You can install pypi/cefpython3 package using pip tool. You can also download packages for offline installation available on this GitHub Release page. Command to install with pip:
pip --no-cache-dir install cefpython3==49.0
Please note that if you were previously installing cefpython3 package it is required to use the --no-cache-dir
flag, otherwise pip will end up with error message No matching distribution found for cefpython3==49.0
. This happens because 49.0 release occured after 57.0 and 66.0 releases.
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 | Yes | Yes | Windows XP+ |
Thanks to the sponsor
Thanks to Fivestars Loyalty, Inc. for sponsoring this release. Please visit its website: https://www.fivestars.com/ .
Changes and notes for this release
- Update to Chromium 49.0.2623.110 (#460)
- Support for Windows XP SP3 or later (Vista, 7, 8, 10). Chromium requires at least SP3 on WinXP.
- Support for Python 2.7 and 3.4. Python 3.4 is the last version of Python that supports Windows XP.
- There were multiple changes in upstream CEF that are backward incompatible and thus require modifications in your app code. See the Migration Guide document for details.
- Documentation is available in the docs/ directory in the
cefpython49-winxp
branch - API reference is available in the api/ directory in the
cefpython49-winxp
branch - Examples that were tested and do work fine:
hello_world.py
,gtk2.py
,qt.py pyqt4
,qt.py pyside
,tutorial.py
,screenshot.py
,tkinter_.py
andwxpython.py
(all exceptgtk3.py
which wasn't tested) - Add snippets in the examples/snippets/ directory
- Update
screenshot.py
example to pass switches to disable GPU acceleration which is not supported in OSR mode and can cause issues if enabled. Also pass additional Chromium switches to enhance performance. (#463) - Do not call
WindowUtils
.OnSize function which can sometimes cause app hanging during window resize event. Call instead the newWindowUtils
.UpdateBrowserSize function. Except when you use thepywin32.py
example, in such caseWindowUtils.OnSize
must be called. (#463) - Known issue:
qt.py pyqt4
andgtk2.py
examples can sometimes hang app during window resize (rare, but happens from time to time) - Update unit tests and add OSR unit test
- The
cefpython57
branch was used as a base for thecefpython49-winxp
branch and thus it comes with all the new build tools, fixes and new examples - Upstream CEF prebuilt binaries for this release are available in release tagged v49-upstream.
Known issues
- Enter key doesn't work in Developer Tools window in the
wxpython.py
example. Enter key works fine when running thehello_world.py
example, so this is only an issue with wxPython. To resolve it create either adevtools.py
script or use remote debugging and open DevTools in a Google Chrome browser. Thedevtools.py
script is basically ahello_world.py
example with one change to url, set it tohttp://127.0.0.1:1234/
. In your wxpython app setApplicationSettings.remote_debugging_port
to1234
and open DevTools popup by executingsubprocess.Popen([sys.executable, "devtools.py"])
. The "Developer Tools" from mouse context menu won't work, however you can implement a custom context menu in javascript.
Upstream CEF v49 prebuilt binaries and libraries
With these upstream CEF prebuilt binaries and libraries you can build CEF Python from sources in less than 10 minutes. See the Build instructions document for details.
Prebult binaries and libraries were created according to build instructions with the automate.py script by running the automate.py --prebuilt-cef
command.
Notes:
- The
cefclient
andcefsimple
sample applications require Vista or later. It should be possible to build these to support XP as well, but it would require modifications to CEF's cmake/ninja configuration in thecef_binary
archives. If there are still issues on XP then see upstream Issue #1787. - The
cef_binary
archives contain only Release mode binaries - CEF binaries for v49 (branch 2623) are not available anymore in upstream CEF (neither cefbuilds nor Spotify), as this is an old unsuported branch
CEF Python v66.0
Installation
You can install pypi/cefpython3 package using pip tool. On Linux pip 8.1+ is required. You can also download packages for offline installation that are attached to this GitHub release. Command to install with pip:
pip install cefpython3==66.0
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 | Yes | Yes | Windows 7+ |
Linux | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 | Yes | Yes | Debian 8+, Ubuntu 14.04+, Fedora 24+, openSUSE 13.3+ |
Mac | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 | No | Yes | MacOS 10.9+ |
Thanks to the sponsor
Many thanks to Lampix for sponsoring this release. Lampix is the first hardware and software solution that turns any surface into a smart, augmented reality or interactive surface. Please visit its website here: https://lampix.com/
Changes and notes for this release
- Update to CEF/Chromium 66.0.3359.181. (#403) See also the "Notable changes in upstream CEF" section further down on this release page.
- Support for Python 3.7 (#433)
- Debian 7 and Ubuntu 12/13 are no more supported due to upstream Chromium/CEF no more supporting these (#401)
- Add Fedora 24+ and openSUSE 13.3+ to officially supported OSes (#466)
- Bundle MSVCP dependencies on Windows [msvcp140.dll, msvcp100.dll, msvcp90.dll]. Previously these were not included and it was required for Visual C++ redistributables to be already installed on a system. (#359)
- Add easy to understand code snippets in the "examples/snippets/" directory. These snippets show how to use various CEF features:
- javascript_bindings.py - Communicate between Python and Javascript asynchronously using inter-process messaging with the use of Javascript Bindings.
- javascript_errors.py - Two ways for intercepting Javascript errors.
- mouse_clicks.py - Perform mouse clicks and mouse movements programmatically.
- network_cookies.py - Implement interfaces to block or allow cookies over network requests.
- onbeforeclose.py - Implement interface to execute custom code before browser window closes.
- ondomready.py - Execute custom Python code on a web page as soon as DOM is ready.
- onpagecomplete.py - Execute custom Python code on a web page when page loading is complete.
- There were multiple changes in upstream CEF that are backward incompatible and thus require modifications to your code. See the Migration Guide document or see the "Breaking changes.." section further down on this release page.
- A known issue: qt.py PyQt4 and PySide examples crash during browser creation on Linux. This is an upstream CEF issue and needs to be resolved in upstream first. (#452) PyQt5 example works fine on Linux.
- A known issue: tkinter.py example hangs on exit and during window resize with Tk 8.5 on Windows (#441)
- A known issue: "blob_storage/" and "webrtc_event_logs/" directories are created in current working directory when using in-memory cache (#432)
- Add accessibility support. See
Browser
.SetAccessibilityState for both windowed and OSR browsers. See AccessibilityHandler for OSR browsers. (#449) - Add
DisplayHandler
.OnLoadingProgressChange - Support for loading certificate revocation lists. See
cefpython
.LoadCrlSetsFile for loading the existing "Certificate Revocation Lists" file that is managed by Google Chrome - Add
RequestHandler
.CanGetCookies and CanSetCookie to allow or block cookies over network requests - Add
Browser
.GetImage method to get browser visible contents as image. Available only on Linux. (#427) - Add
Browser
.Invalidate to force frame to be painted in OSR mode - Add
CookieManager
.GetBlockingManager - Add
CookieManager
.FlushStore to flush cookies to disk manually - Add
BrowserSettings
.inherit_client_handlers_for_popups option. This is enabled by default and makes client handlers/callbacks to be inherited by popup browsers created implicitilly e.g. via "window.open" in js - Handle more keyboard shortcuts on Mac and fix double Paste bug (#161)
- Fix cookies not flushed to disk when closing app immediately (#365)
- Fix High DPI support on Windows. Support High DPI in the wxpython.py example (#399)
- Add
DpiAware
.Scale which is reliable with any DPI settings. TheDpiAware.CalculateWindowSize
method is deprecated. FixDpiAware.GetSystemDpi
. (#398) - Add DragData Image APIs on Windows and Mac (Linux was already supported):
GetImage
,GetImageHotspot
,HasImage
(#251) - Fix crashes on websites with multiple frames when closing app during loading (#431)
- Fix two crashes when closing app immediately during initial loading (#454, #455)
- Fix
Request.SetPostData
andGetPostData
not working. All strings are expected to be byte strings. (#228) - Fix window glitchiness during initial loading on Mac by setting
setWantsLayer:YES
in the wxpython.py example (#371) - Fix process sometimes hanging when exiting app in the qt.py PySide example (#360)
- Fix exception message sometimes not printed on Mac, an issue with
cef.ExceptHook
(#382) - Fix crash when closing print dialog on Linux (#435)
- Fix creation of "GPUCache/" directory when using in-memory cache (#419)
- Add
RenderHandler
.OnTextSelectionChanged - Add
Browser
.SetAutoResizeEnabled - Add
DisplayHandler
.OnAutoResize - Support linking to GTK 3 when building CEF from sources and when building cefpython module. Patch is available in comments in Issue #446.
- Add
--enable-profiling
and--enable-linetracing
flags tobuild.py
tool to allow for profiling cefpython code with cProfile module (#424) - Add
--no-depot-tools
update flag toautomate.py
to allow of building old unsupported versions of Chromium. Update build instructions, see for more details. (#428) - Add
Browser
.GetSetting - Add
Browser
.HasDevTools - Add
cefpython
.SetGlobalClientHandler - Add
cefpython
.GetBrowserByIdentifier - Add
cefpython
.GetDataUrl - Linux patch that fixed HTTPS cache problems on pages with certificate errors was disabled, see here
- Add unit tests for off-screen rendering mode, see osr_test.py (#59)
- See Milestone v66 for all issues related with this release
- Upstream CEF prebuilt binaries for this release are available in release tagged v66-upstream.
Breaking changes that are described in details in Migration Guide document
Upstream CEF v66 prebuilt binaries and libraries
This release will be updated with new binaries with time.
Master
branch is currently v66
. There is no cefpython66
branch at the moment.
With these upstream CEF prebuilt binaries and libraries you can build CEF Python from sources in less than 10 minutes. See the Build instructions document for details.
Built according to build instructions with the automate.py script. On Windows and Mac binaries from Spotify Automated Builds ("Standard distribution") were used and then ran automate.py --prebuilt-cef
. On Linux CEF was build from sources by running automate.py --build-cef
.
LINUX NOTE: Linux binaries were built on Ubuntu 14.04 64-bit. These binaries contain libcef.so with minimal symbols so that you can debug CEF with gdb and get a meaningful stack trace. Currently cefpython v54-v66 and later distribution packages on PyPI and on GH releases ship a stripped version of libcef.so with no symbols at all (Issue #262). Download archive from this release and switch libcef.so in your already installed package to allow for debugging CEF.
CEF Python 66.0:
- cef66_3.3359.1774.gd49d25f_win32.zip (Windows 32-bit)
- cef66_3.3359.1774.gd49d25f_win64.zip (Windows 64-bit)
- cef66_3.3359.1774.gd49d25f_linux32.zip (Linux 32-bit)
- cef66_3.3359.1774.gd49d25f_linux64.zip (Linux 64-bit)
- cef66_3.3359.1774.gd49d25f_mac64.zip (Mac 64-bit)
CEF Python v57.1 for Windows
This release fixes some issues on Windows, including High DPI support. Version v57.1 is released only for Windows. See also v57.0 release which is available for all platforms.
Installation
You can install pypi/cefpython3 package using pip tool. Command to install with pip:
pip install cefpython3==57.1
If you get an error when importing the cefpython3 package on Windows then see this section in the Knowledge Base document: ImportError: DLL load failed (Windows).
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Windows 7+ |
Changes and notes for this release
- Fix High DPI support on Windows (Issue #358). See changes in Migration Guide document.
- Add new setting ApplicationSettings.app_user_model_id (Issue #395). This option is to resolve Windows 10 taskbar pinning issues.
- Add PyInstaller example (Issue #135)
- Create screenshot.py example (Issue #287)
- Add cef.PostDelayedTask function (Issue #61)
CEF Python v57.0
Installation
You can install pypi/cefpython3 package using pip tool. On Linux pip 8.1+ is required. You can also download packages for offline installation that are attached to this GitHub release. Command to install with pip:
pip install cefpython3==57.0
If you get an error when importing the cefpython3 package on Windows then see this section in the Knowledge Base document: ImportError: DLL load failed (Windows).
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Windows 7+ |
Linux | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Debian 7+ / Ubuntu 12.04+ |
Mac | 2.7 | 3.4 / 3.5 / 3.6 | No | Yes | MacOS 10.9+ |
Changes and notes for this release
- Update to Chromium 57.0.2987.133 (#341)
- Support for PyQt5 in the qt.py example (#325)
- GTK 3 example gtk3.py is now back working fine with this release (#261)
- See Milestone v57 for all issues related with this release
- Upstream CEF prebuilt binaries for this release are available in release tagged v57-upstream
Notable changes in upstream CEF:
- Fix print to PDF - upstream #2129
- Add PDF print scale factor setting - upstream #2106
- Fix DevTools inspect element at - upstream #2115
- Fix opening of popups from sandboxed iframes - upstream #2121
- Fix crash when navigating back to file url - upstream #2125
- Don't call OnLoadEnd for same page navigations - usptream #1852
- Persist DevTools preferences with CefSettings.persist_user_preferences - upstream #2077
- Fix crash on shutdown with multi_threaded_message_loop and extensions enabled on Windows - upstream #1680
- Fix OSR popup transparency - upstream #2099
Upstream CEF v57 prebuilt binaries and libraries
With these upstream CEF prebuilt binaries and libraries you can build CEF Python from sources in less than 10 minutes. See the Build instructions document for details.
Built according to build instructions with the automate.py script. On Windows and Mac binaries from Spotify Automated Builds ("Standard distribution") were used and then ran automate.py --prebuilt-cef
. On Linux CEF was build from sources by running automate.py --build-cef
.
LINUX NOTE: Linux binaries were built on Ubuntu 14.04 64-bit. These binaries contain libcef.so with minimal symbols so that you can debug CEF with gdb and get a meaningful stack trace. Currently cefpython v54 and later distribution packages on PyPI and on GH releases ship a stripped version of libcef.so with no symbols at all (Issue #262). Download archive from this release and switch libcef.so in your already installed package to allow for debugging CEF.
This release will be updated with new binaries with time.
CEF Python 57.0:
- cef57_3.2987.1601.gf035232_linux64.zip (Linux 64-bit)
- cef57_3.2987.1601.gf035232_linux32.zip (Linux 32-bit)
- cef57_3.2987.1601.gf035232_mac64.zip (Mac 64-bit)
- cef57_3.2987.1601.gf035232_win32.zip (Windows 32-bit)
- cef57_3.2987.1601.gf035232_win64.zip (Windows 64-bit)
CEF Python v56.2
Installation
You can install with pip. On Linux pip 8.1+ is required. You can also download packages for offline installation that are attached to this GitHub release.
pip install cefpython3==56.2
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Windows 7+ |
Linux | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Debian 7+ / Ubuntu 12.04+ |
Mac | 2.7 | 3.4 / 3.5 / 3.6 | No | Yes | MacOS 10.9+ |
Changes and notes for this Release
- Complete Tutorial doc (#256)
- Complete Migration guide doc (#293)
- Support wxPython 4.0 in the wxpython.py example (#348, #349, #350)
- Support wxPython 3.0 in the wxpython.py example on Linux (all platforms now supported) (#349)
- Fix false positives by Anti-virus software on Windows (#342)
- Support setting window title in hello_world.py example (#339)
- Do not call client handlers nor javascript bindings in DevTools windows (#344)
- Fix page printing in hello_world.py and tkinter_.py examples on Linux (#340)
- Fix race condition in gtk2.py example (#347)
- Fix: ApplicationSettings.debug option causing GUI stuttering on Windows 10 when calling Python functions from JS (#277)
- Fix logging of command line string for child processes (#351)
- See Milestone v56 for all issues related with this release
- Upstream CEF prebuilt binaries for this release are available in release tagged v56-upstream
CEF Python 56.1 for Windows / Linux / Mac
Installation
You can install with pip. On Linux pip 8.1+ is required. You can also download packages for offline installation that are attached to this GitHub release.
pip install cefpython3==56.1
Support matrix
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Windows 7+ |
Linux | 2.7 | 3.4 / 3.5 / 3.6 | Yes | Yes | Debian 7+ / Ubuntu 12.04+ |
Mac | 2.7 | 3.4 / 3.5 / 3.6 | No | Yes | MacOS 10.9+ |
Changes and notes for this Release
- Many thanks to ClearChat Inc. for sponsoring v55/v56 releases for all platforms
- Initial unified release for all platforms / pythons / architectures (#335)
- Chromium version 56.0.2924.76 (#276)
- Python 3 support (#121)
- 64-bit support on Windows (#316)
- 32-bit support on Linux (#327)
- Provide default implementation for js and file dialogs on Linux (#241)
- Fix 'BadWindow' x11 errors in wxpython.py example (#334)
- Fix segmentation fault during release of shared request context (#333)
- Fix Browser references living forever which could cause issues when exiting app (#330)
- See Milestone v56 for all issues related with this release
- Upstream CEF prebuilt binaries for this release are available in release tagged v56-upstream