Table of contents:
- Introduction
- Sponsors
- Install
- Tutorial
- Examples
- Support
- Support development
- Releases
- Other READMEs
- Quick links
CEF Python is a BSD-licensed open source project founded by Czarek Tomczak (hire me! see my resume) in 2012 and is based on Google Chromium and the CEF Framework projects. 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. Examples of embedding Chrome browser are available for many popular GUI toolkits including: wxPython, PyGTK, PyQt, PySide, Kivy, Panda3D and PyGame/PyOpenGL.
There are many use cases for CEF. You can embed a web browser control based on Chromium with great HTML 5 support. You can use it to create a HTML 5 based GUI in an application, this can act as a replacement for standard GUI toolkits such as wxWidgets, Qt or GTK. In such case to communicate between Python<>Javascript use javascript bindings or embed an internal web server and talk using http requests. You can render web content off-screen in applications that use custom drawing frameworks. You can use it for automated testing of existing applications. You can use it for web scraping or as a web crawler, or other kind of internet bots.
See the Support development section for a list of all the individuals and companies supporting CEF Python.
Thanks to Lampix for the v66 release
Many Thanks to Lampix for sponsoring the v66 release of CEF Python. 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/ .
Thanks to Fivestars for the v49 release (WinXP/Vista)
Thanks to Fivestars Loyalty, Inc. for sponsoring the v49 release for legacy systems such as Windows XP and Vista. Please visit its website: https://www.fivestars.com/ .
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
See the Tutorial.md document.
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.
- Ask questions, report problems and issues on the Forum
- Supported examples are listed in the README-examples.md file
- Documentation is in the docs/ directory:
- API reference is in the api/ directory:
- Additional documentation is available in Issues labelled Knowledge Base
- To search documentation use GitHub "This repository" search at the top. To narrow results to documentation only select "Markdown" in the right pane.
- You can vote on issues in the tracker to let us know which issues are important to you. To do that add a +1 thumb up reaction to the first post in the issue. See Most popular issues sorted by reactions.
- Wiki pages are deprecated and for v31 only
If you would like to support general CEF Python development efforts by making a donation please click the Paypal Donate button:
If you would like to see some feature implemented you can make a comment about that when making a donation. It will give it a higher priority.
If you are interested in sponsorship opportunities please contact Czarek directly - contact details are available in his Resume.
If you would like to sponsor CEF Python development efforts and see your company logo with a link in README, please contact Czarek. This README page alone has 1,070 visitors and 2,402 views every two weeks, so your company logo and a website link will be visible to many Python developers. The statistics are from Mar 9, 2018. Complete statistics are available in this topic on the Forum: [ANN] Call for sponsors.
- [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
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.
- To see planned new features or bugs to be fixed in the next release, see the next release label in the tracker
- To see planned new features or bugs to be fixed in the in one of next releases, see the next release 2 label in the tracker
OS | Py2 | Py3 | 32bit | 64bit | Requirements |
---|---|---|---|---|---|
Windows | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 / 3.8 | Yes | Yes | Windows 7+ |
Linux | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 / 3.8 | Yes | Yes | Debian 8+, Ubuntu 14.04+, Fedora 24+, openSUSE 13.3+ |
Mac | 2.7 | 3.4 / 3.5 / 3.6 / 3.7 / 3.8 | No | Yes | MacOS 10.9+ |
These platforms are not supported yet:
- ARM - see Issue #267
- Android - see Issue #307
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 messageNo matching distribution found for cefpython3==49.0
. This happens because 49.0 release occured after 57.0 and 66.0 releases.
- Please note that if you were previously installing cefpython3
package it is required to use the
- 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
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
- cefpython module
- ApplicationSettings dictionary
- BrowserSettings dictionary
- CommandLineSwitches dictionary
- Browser object
- Callback object
- Cookie class
- CookieManager class
- DpiAware class (Win)
- DragData object
- Frame object
- Image object
- JavascriptBindings class
- JavascriptCallback object
- PaintBuffer object
- Request class
- Response object
- WebPluginInfo object
- WebRequest class
- WindowInfo class
- WindowUtils class
- AccessibilityHandler
- DisplayHandler
- DownloadHandler
- FocusHandler
- JavascriptDialogHandler
- KeyboardHandler
- LifespanHandler
- LoadHandler
- RenderHandler
- RequestHandler
- ResourceHandler
- V8ContextHandler
- CookieVisitor interface
- StringVisitor interface
- WebRequestClient interface
- AccessibilityHandler (interface)
- Application settings
- accept_language_list
- app_user_model_id
- auto_zooming
- background_color
- browser_subprocess_path
- cache_path
- command_line_args_disabled
- context_menu
- downloads_enabled
- external_message_pump
- framework_dir_path
- ignore_certificate_errors
- javascript_flags
- locale
- locales_dir_path
- debug
- log_file
- log_severity
- multi_threaded_message_loop
- net_security_expiration_enabled
- pack_loading_disabled
- persist_session_cookies
- persist_user_preferences
- product_version
- remote_debugging_port
- resources_dir_path
- single_process
- string_encoding
- uncaught_exception_stack_size
- unique_request_context_per_browser
- user_agent
- user_data_path
- windowless_rendering_enabled
- Browser (object)
- AddWordToDictionary
- CanGoBack
- CanGoForward
- CloseBrowser
- CloseDevTools
- DragTargetDragEnter
- DragTargetDragOver
- DragTargetDragLeave
- DragTargetDrop
- DragSourceEndedAt
- DragSourceSystemDragEnded
- ExecuteFunction
- ExecuteJavascript
- Find
- GetClientCallback
- GetClientCallbacksDict
- GetFocusedFrame
- GetFrame
- GetFrameByIdentifier
- GetFrames
- GetFrameCount
- GetFrameIdentifiers
- GetFrameNames
- GetImage
- GetJavascriptBindings
- GetMainFrame
- GetNSTextInputContext
- GetOpenerWindowHandle
- GetOuterWindowHandle
- GetSetting
- GetUrl
- GetUserData
- GetWindowHandle
- GetIdentifier
- GetZoomLevel
- GoBack
- GoForward
- HandleKeyEventAfterTextInputClient
- HandleKeyEventBeforeTextInputClient
- HasDevTools
- HasDocument
- Invalidate
- IsFullscreen
- IsLoading
- IsMouseCursorChangeDisabled
- IsPopup
- IsWindowRenderingDisabled
- LoadUrl
- Navigate
- NotifyMoveOrResizeStarted
- NotifyScreenInfoChanged
- ParentWindowWillClose
- Reload
- ReloadIgnoreCache
- ReplaceMisspelling
- SetAutoResizeEnabled
- SetBounds
- SendKeyEvent
- SendMouseClickEvent
- SendMouseMoveEvent
- SendMouseWheelEvent
- SendFocusEvent
- SendCaptureLostEvent
- SetAccessibilityState
- SetClientCallback
- SetClientHandler
- SetFocus
- SetMouseCursorChangeDisabled
- SetJavascriptBindings
- SetUserData
- SetZoomLevel
- ShowDevTools
- StartDownload
- StopLoad
- StopFinding
- ToggleFullscreen
- TryCloseBrowser
- WasResized
- WasHidden
- Browser settings
- Font settings
- accept_language_list
- application_cache_disabled
- background_color
- databases_disabled
- default_encoding
- dom_paste_disabled
- file_access_from_file_urls_allowed
- inherit_client_handlers_for_popups
- image_load_disabled
- javascript_disabled
- javascript_close_windows_disallowed
- javascript_access_clipboard_disallowed
- local_storage_disabled
- plugins_disabled
- remote_fonts
- shrink_standalone_images_to_fit
- tab_to_links_disabled
- text_area_resize_disabled
- universal_access_from_file_urls_allowed
- user_style_sheet_location
- web_security_disabled
- webgl_disabled
- windowless_frame_rate
- Callback (object)
- cefpython
- CreateBrowser
- CreateBrowserSync
- ExceptHook
- GetAppSetting
- GetAppPath
- GetBrowserByIdentifier
- GetBrowserByWindowHandle
- GetCommandLineSwitch
- GetDataUrl
- GetGlobalClientCallback
- GetModuleDirectory
- GetVersion
- Initialize
- IsThread
- LoadCrlSetsFile
- MessageLoop
- MessageLoopWork
- PostTask
- PostDelayedTask
- QuitMessageLoop
- SetGlobalClientCallback
- SetGlobalClientHandler
- SetOsModalLoop
- Shutdown
- Command line switches
- Cookie (class)
- CookieManager (class)
- CookieVisitor (interface)
- DisplayHandler (interface)
- DownloadHandler
- DpiAware (class)
- DragData (object)
- FocusHandler (interface)
- Frame (object)
- Image (object)
- JavascriptBindings (class)
- JavascriptCallback (object)
- JavascriptDialogHandler (interface)
- KeyboardHandler (interface)
- LifespanHandler (interface)
- LoadHandler (interface)
- Network error
- ERR_NONE
- ERR_ABORTED
- ERR_ACCESS_DENIED
- ERR_ADDRESS_INVALID
- ERR_ADDRESS_UNREACHABLE
- ERR_CACHE_MISS
- ERR_CERT_AUTHORITY_INVALID
- ERR_CERT_COMMON_NAME_INVALID
- ERR_CERT_CONTAINS_ERRORS
- ERR_CERT_DATE_INVALID
- ERR_CERT_END
- ERR_CERT_INVALID
- ERR_CERT_NO_REVOCATION_MECHANISM
- ERR_CERT_REVOKED
- ERR_CERT_UNABLE_TO_CHECK_REVOCATION
- ERR_CONNECTION_ABORTED
- ERR_CONNECTION_CLOSED
- ERR_CONNECTION_FAILED
- ERR_CONNECTION_REFUSED
- ERR_CONNECTION_RESET
- ERR_DISALLOWED_URL_SCHEME
- ERR_EMPTY_RESPONSE
- ERR_FAILED
- ERR_FILE_NOT_FOUND
- ERR_FILE_TOO_BIG
- ERR_INSECURE_RESPONSE
- ERR_INTERNET_DISCONNECTED
- ERR_INVALID_ARGUMENT
- ERR_INVALID_CHUNKED_ENCODING
- ERR_INVALID_HANDLE
- ERR_INVALID_RESPONSE
- ERR_INVALID_URL
- ERR_METHOD_NOT_SUPPORTED
- ERR_NAME_NOT_RESOLVED
- ERR_NO_SSL_VERSIONS_ENABLED
- ERR_NOT_IMPLEMENTED
- ERR_RESPONSE_HEADERS_TOO_BIG
- ERR_SSL_CLIENT_AUTH_CERT_NEEDED
- ERR_SSL_PROTOCOL_ERROR
- ERR_SSL_RENEGOTIATION_REQUESTED
- ERR_SSL_VERSION_OR_CIPHER_MISMATCH
- ERR_TIMED_OUT
- ERR_TOO_MANY_REDIRECTS
- ERR_TUNNEL_CONNECTION_FAILED
- ERR_UNEXPECTED
- ERR_UNEXPECTED_PROXY_AUTH
- ERR_UNKNOWN_URL_SCHEME
- ERR_UNSAFE_PORT
- ERR_UNSAFE_REDIRECT
- PaintBuffer (object)
- RenderHandler (interface)
- Request (class)
- RequestHandler (interface)
- ResourceHandler (interface)
- Response (object)
- StringVisitor (interface)
- V8ContextHandler (interface)
- Virtual Key codes
- WebPluginInfo (object)
- WebRequest (class)
- WebRequestClient (interface)
- WindowInfo (class)
- WindowUtils (class)