Registry / web-framework / pyobjc-framework-browserenginekit

pyobjc-framework-browserenginekit

JSON →
library12.2pypypiunverified

PyObjC provides Python bindings for the BrowserEngineKit framework on macOS, allowing Python applications to embed web content rendering capabilities. It is part of the larger PyObjC project, which wraps many macOS frameworks. Version 12.1 is current, with releases typically aligning with macOS SDK updates and Python version support changes.

pip install pyobjc-framework-browserenginekit
INSTALL
IMPORT
SIG · PYOBJC-FRAMEWORK-B
P
pyobjc-framework-browserenginekit
web-frameworkpythonv12.2
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.940 runs
build_error
glibc
py 3.103.940 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

BEBrowserViewController
from BrowserEngineKit import BEBrowserViewController
Classes from BrowserEngineKit are typically imported directly from the 'BrowserEngineKit' package.

This example demonstrates how to instantiate a `BEBrowserViewController` within a minimal macOS GUI application using PyObjC. It creates a simple window and embeds the browser view controller's view into it. Running this code requires a macOS environment and will display an empty browser window.

import objc from AppKit import NSApplication, NSWindow, NSMakeRect from BrowserEngineKit import BEBrowserViewController from PyObjCTools import AppHelper # Common for PyObjC GUI apps class MyBrowserViewController(BEBrowserViewController): # A minimal subclass just to demonstrate extending BEBrowserViewController pass class AppDelegate(objc.NSObject): def applicationDidFinishLaunching_(self, notification): self.mainWindow = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_( NSMakeRect(100, 100, 800, 600), 4 | 8 | 1 | 2, # Titled, Closable, Miniaturizable, Resizable 2, # NSBackingStoreBuffered False ) self.mainWindow.setTitle_("PyObjC BrowserEngineKit Demo") self.browserVC = MyBrowserViewController.alloc().init() self.mainWindow.setContentView_(self.browserVC.view()) self.mainWindow.makeKeyAndOrderFront_(None) def main(): app = NSApplication.sharedApplication() delegate = AppDelegate.alloc().init() app.setDelegate_(delegate) AppHelper.runEventLoop() # Starts the macOS event loop if __name__ == "__main__": main()
Debug
Known issues
breakingPython 3.9 support was dropped in PyObjC 12.0. Python 3.8 support was dropped in PyObjC 11.0. Future versions will continue to drop support for older Python versions as they reach end-of-life.
fix
Ensure your Python environment is 3.10 or newer (for PyObjC 12.x) and regularly update Python alongside PyObjC.
affects: 11.0, 12.0+
breakingPyObjC 11.1 introduced changes to how Objective-C Automatic Reference Counting (ARC) rules are modeled for 'init' family methods, aligning with `clang`'s documentation. This means `init` methods now correctly 'steal' a reference to `self` and return a new one, potentially affecting custom memory management or object lifecycle expectations.
fix
Review object lifecycle management, especially around custom Objective-C `init` methods defined in Python, to ensure correct reference counting behavior.
affects: 11.1+
breakingPyObjC 10.3 changed the interaction between Python's `__init__` and `__new__` methods. While 10.3.1 partially reverted this for user-implemented `__new__` methods, code relying on `__new__` provided by PyObjC cannot use `__init__`.
fix
If implementing `__new__`, carefully manage initialization logic. For classes relying on PyObjC's `__new__`, avoid implementing `__init__`.
affects: 10.3+
gotchaPyObjC does not support Python's experimental free-threading (PEP 703) in Python 3.13, despite binary wheels being available. Running PyObjC in a free-threaded Python environment may lead to instability.
fix
Avoid using PyObjC in free-threaded Python 3.13 environments, or ensure Python is run in a mode that disables free-threading if using PyObjC.
affects: 10.3+ with Python 3.13
breaking`objc.classAddMethods` no longer supports passing arbitrary callable types (e.g., `functools.partial`) as method implementations. Only `MethodType` or `FunctionType` values are accepted.
fix
Refactor code using `objc.classAddMethods` to ensure only `MethodType` or `FunctionType` objects are passed as method implementations.
affects: 12.1+
breakingEntire frameworks that were deprecated by Apple have been removed from PyObjC bindings. For example, `IMServicePlugIn` was removed in PyObjC 10.0.
fix
Check the release notes for major PyObjC versions if you receive import errors for frameworks. Migrate away from any frameworks deprecated and removed by Apple/PyObjC.
affects: 10.0+
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredCore bridge between Python and Objective-C, required for all PyObjC framework bindings.
Agent activity
6 hits · last 30 days
node
6
Resources
pyobjc-framework-browserenginekit — pip install pyobjc-framework-browserenginekit · libregistry