Registry /
http-networking / pyobjc-framework-mediaextension
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
muslpy 3.10–3.940 runs
build_error
glibcpy 3.10–3.940 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
MediaExtension
✓ import MediaExtension
MEMediaExtension
✓ from MediaExtension import MEMediaExtension
This quickstart demonstrates how to import the MediaExtension framework and access one of its core classes. As MediaExtension is designed for implementing system extensions, a simple script can only verify the Python bindings are correctly installed and can access the underlying Objective-C framework components, rather than performing a full functional task without a host application context.
import MediaExtension
import objc
# The MediaExtension framework primarily deals with creating extensions
# for media playback and editing on macOS. Due to its nature, a simple
# script can only verify its presence and accessibility, not its full functionality
# which typically requires a host application context.
print('Attempting to import MediaExtension framework...')
try:
# Accessing a fundamental class from the framework verifies the import.
# MEMediaExtension is a key class. If the framework is correctly loaded,
# this class should be accessible.
media_extension_class = MediaExtension.MEMediaExtension
print(f"Successfully imported MediaExtension and accessed its class: {media_extension_class}")
# Further verification: Check for a common method (illustrative)
if hasattr(media_extension_class, 'beginMediaExtensionProcessWithConfiguration:completionHandler:'):
print("Found a common MediaExtension method, indicating bindings are functional.")
else:
print("Could not find a common MediaExtension method, though class is accessible.")
except objc.nosuchmodule_error:
print("Error: MediaExtension framework not found. This typically means you are not on macOS,")
print(" or the framework is not available for your macOS version.")
except AttributeError as e:
print(f"Error accessing MediaExtension classes: {e}. Framework might be present but classes not exposed or wrong name.")
except Exception as e:
print(f"An unexpected error occurred: {e}")
print('Quickstart complete: Demonstrated successful import and class access for MediaExtension.')
Debug
Known issues
breakingPyObjC 12.0 (and thus pyobjc-framework-mediaextension 12.0) dropped support for Python 3.9. Projects using Python 3.9 must remain on PyObjC 11.x or older.fixUpgrade to Python 3.10 or newer, or pin pyobjc-framework-mediaextension to a version < 12.0.
affects: >=12.0
breakingPyObjC 11.1 introduced a significant change in how PyObjC models Automatic Reference Counting (ARC) behavior for Objective-C initializer ('init') methods, aligning with `clang` documentation. Previously, certain `init` methods might not have correctly stolen or returned references, leading to potential memory management issues (leaks or premature deallocation) in code that heavily interacts with Objective-C object initialization.fixReview code that interacts with `alloc().init()` patterns or other Objective-C initializer methods, particularly if custom memory management or complex object lifecycles are involved. Test thoroughly for unexpected crashes or reference counting anomalies.
affects: >=11.1
gotchaPyObjC 10.3 briefly removed support for using `__init__` in Python subclasses when `__new__` was not explicitly implemented by the user, causing breaks in some projects. Version 10.3.1 reinstated the ability to use `__init__` when a class or its superclass implements a user-defined `__new__`. However, if relying on PyObjC's provided `__new__`, `__init__` still cannot be used.fixIf experiencing issues with `__init__` not being called or correctly initialized for Objective-C bridged classes in versions 10.3 or 10.3.1, upgrade to 10.3.1 or later. For classes inheriting from PyObjC-proxied Objective-C classes, ensure `__new__` is either explicitly implemented by Python code (allowing `__init__`) or avoid `__init__` if using PyObjC's default `__new__` behavior.
affects: 10.3 - 10.3.1
gotchaPyObjC 11.0 introduced experimental support for Python 3.13's PEP 703 (free-threading). While not fully stable or enabled by default, this required significant internal changes to PyObjC's core bridge to handle Python's C API and reference counting in a thread-safe manner. Users planning to leverage free-threading with Python 3.13 and PyObjC should be aware of its experimental status and potential for unforeseen issues.fixFor production systems, avoid enabling PEP 703's free-threading with PyObjC until it is officially stable. If experimenting, thoroughly test all multi-threaded operations and interactions with Objective-C objects for stability and correctness.
affects: >=11.0 (with Python 3.13)
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredProvides the core bridge between Python and Objective-C, essential for all PyObjC framework wrappers.