Electron for Python. Chrome browser widget. HTML 5 based GUI framework.
Clone or download
Latest commit b407c4b Dec 21, 2018

README.md

CEF Python

Table of contents:

Introduction

CEF Python is a an open source project founded by Czarek Tomczak in 2012 to provide Python bindings for the Chromium Embedded Framework. Simply put, CEF is kind of Electron for Python, but with numerous use cases making it a lot more. The project has evolved and it is now much more than just pure Python bindings, it helps you integrate the CEF framework with the Python environment, the desktop and the numerous Python GUI frameworks and tools such as PyQt, wxPython, PyGTK, PyGObject, Tkinter, Kivy, Panda3D, PyGame, PyOpenGL, PyWin32, PySide, PySDL2 and PyInstaller.

The Chromium project focuses mainly on Google Chrome application development while CEF focuses on facilitating embedded browser use cases in third-party applications. Lots of applications use CEF control, there are more than 100 million CEF instances installed around the world.

There are numerous use cases for CEF:

  1. Embed a web browser widget in a classic Qt / GTK / wxPython desktop application
  2. Use it as a modern HTML5 based rendering engine that can act as a replacement for classic desktop GUI frameworks. Think of it as Electron for Python.
  3. Render web content off-screen in applications that use custom drawing frameworks
  4. Use it for automated testing of web applications with more advanced capabilities than Selenium web browser automation due to CEF low level programming APIs
  5. Use it for web scraping, as a web crawler or other kind of internet bots

Sponsors

Many Thanks to Lampix for sponsoring the v66 release. Lampix is the first hardware and software solution that turns any surface into a smart, augmented reality or interactive surface. Please visit their website: Lampix.com

Many thanks to Fivestars for sponsoring the v49 legacy release. Fivestars helps local communities thrive by empowering small businesses with cutting edge marketing technology. Please visit their website: Fivestars.com

The CEF Python project is seeking companies to help make the project even greater than it is today. There is a lot that can be done for the project such as monthly releases with latest Chromium version, an automated build system, more CEF API exposed (only about 50% is exposed so far), more examples, ARM and Android support, easier integration with popular GUI toolkits in just a few lines of code, H264 / H265 / AC3 / EAC3 / MPEG-4 codecs support in build tools, multi-threaded support, hundreds of new settings and preferences, and the many more proposals for new features submitted in the issue tracker. If your company would like to sponsor CEF Python development efforts then please contact Czarek. Long term sponsorships are welcome and Czarek is open to ideas about the project. He would love to spend more time on developing this project, but he can't afford doing so in his free time. Currently there is no company supporting this project actively on a day to day basis.

Install

You can install pypi/cefpython3 package using pip tool. On Linux pip 8.1+ is required. You can also download packages for offline installation available on the GitHub Releases pages. Command to install with pip:

pip install cefpython3==66.0

Tutorial

See the Tutorial.md document.

Examples

See the README-examples.md document.

For small and easy to understand code snippets that show various CEF features see the README-snippets.md document.

Support

Support development

If you would like to support general CEF Python development efforts by making a donation then please click the Paypal Donate button below. If you would like to see a specific feature implemented then you can make a comment about that when making a donation and that will give it a higher priority.



Thanks to sponsors

Thanks to all

  • [2018] Thanks to Fivestars for sponsoring the v49 release for legacy systems (WinXP/Vista)
  • [2018] Many thanks to Lampix for sponsoring the v66 release for all platforms
  • [2017] Many thanks to ClearChat Inc. for sponsoring the v55/v56 releases for all platforms
  • [2016-2018] Thanks to JetBrains for providing an Open Source license for PyCharm
  • [2014] Thanks to Adam Duston for donating a Macbook to aid the development of Mac port
  • [2013-2015] Lots of thanks goes to Cyan Inc. for sponsoring this project for a long time, making CEF Python 3 mature
  • [2013] Thanks to Rentouch GmbH for sponsoring the development of the off-screen rendering support
  • [2013] Thanks to Thomas Wusatiuk for sponsoring the development of the web response reading features
  • [2012-2018] Thanks to those who have made a Paypal donation: Rentouch GmbH, Walter Purvis, Rokas Stupuras, Alex Rattray, Greg Kacy, Paul Korzhyk, Tomasz Tomanek.
  • [2012-2017] Thanks to those who have donated their time through code contributions, they are listed in the Authors file

Releases

Information on planned new and current releases, supported platforms, python versions, architectures and requirements. If you want to support old operating systems then choose the v31 release.

Next release

  • To see planned new features or bugs to be fixed in the near future in one of next releases, see the next release label in the tracker
  • To see planned new features or bugs to be fixed in further future, see the next release 2 label in the tracker

Latest release

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+

These platforms are not supported yet:

v49 release (WinXP/Vista)

OS Py2 Py3 32bit 64bit Requirements
Windows 2.7 3.4 Yes Yes Windows XP+
  • Install with command: 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.
  • Downloads are available on GitHub Releases tagged v49.0.
  • See Migration guide document for changes in this release
  • 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

v31 release (old systems)

OS Py2 Py3 32bit 64bit Requirements
Windows 2.7 No Yes Yes Windows XP+
Linux 2.7 No Yes Yes Debian 7+ / Ubuntu 12.04+
Mac 2.7 No Yes Yes MacOS 10.7+

Additional information for v31.2 release:

  • On Windows/Mac you can install with command: pip install cefpython3==31.2
  • Downloads are available on wiki pages and on GitHub Releases tagged v31.2.
  • Documentation is on wiki pages
  • API reference is available in revision 169a1b2

Other READMEs

Quick links

Docs

API categories

Modules

Settings

Classes and objects

Client handlers (interfaces)

Other interfaces

API index