Registry /
communication / pyobjc-framework-avrouting
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.920 runs
build_error
glibcpy 3.10–3.920 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
AVRouting
✓ import AVRouting
All classes, functions, and constants from the AVRouting framework are made available under this module.
This quickstart demonstrates how to import the `AVRouting` framework and instantiate a basic class like `AVCustomRoutingController`. Full functionality of the `AVRouting` framework typically requires integration with other macOS services, UI elements like `AVRoutePickerView`, and the implementation of delegate protocols as detailed in Apple's `AVRouting` documentation.
import AVRouting
import objc
def main():
# Instantiate a core AVRouting class. AVCustomRoutingController manages custom device routes.
# Actual functionality requires deeper integration with macOS services and delegates,
# typically within a full Cocoa application context, as per Apple's AVRouting documentation.
controller = AVRouting.AVCustomRoutingController.alloc().init()
# Example of accessing a property (if available, consult Apple's docs for specifics)
# This particular property needs a delegate or further setup to be meaningful.
# For demonstration, we just show instantiation.
print(f"AVRouting.AVCustomRoutingController instance created: {controller}")
# To make sure PyObjC is properly initialized in a non-GUI context
# This is often handled implicitly in Cocoa applications, but good for standalone scripts.
objc.autoreleasepool(lambda: main_logic())
def main_logic():
# Your main PyObjC logic goes here
pass # The example already does the print in the outer main
if __name__ == '__main__':
main()
Debug
Known issues
breakingPyObjC 12.0 dropped support for Python 3.9.fixUpgrade to Python 3.10 or newer (Python 3.10 is the minimum for PyObjC 12.x).
affects: 12.0 and later
breakingPyObjC 11.0 dropped support for Python 3.8.fixUpgrade to Python 3.9 or newer (Python 3.10 is the minimum for PyObjC 12.x).
affects: 11.0 and later
gotchaInstalling PyObjC from source (or in some edge cases even binary wheels) requires Apple's Xcode Command Line Tools to be installed on your macOS system.fixRun `xcode-select --install` in your terminal to install the necessary tools.
affects: All versions
gotchaBehavior around `__init__` when `__new__` is implemented in Python subclasses of Objective-C classes changed in PyObjC 10.3 and was partially reverted in 10.3.1. This can affect custom initializers.fixReview Python subclasses that implement both `__new__` and `__init__` if upgrading from pre-10.3.1. Consult PyObjC release notes for details.
affects: 10.3, fixed in 10.3.1 and later
gotchaPyObjC 11.1 introduced alignment with `clang`'s Automatic Reference Counting (ARC) for initializer methods (methods in the 'init' family), which now correctly model reference stealing and returning new references. This might subtly change memory management behavior for custom Objective-C class wrappers.fixReview custom Objective-C class wrappers, especially `init` methods, for potential changes in reference counting behavior.
affects: 11.1 and later
gotchaKey-Value Observing (KVO) usage is automatically disabled for subclasses of `NSProxy` defined in Python to prevent `SystemError`.fixIf you relied on KVO with Python `NSProxy` subclasses, this behavior is now implicitly disabled. Re-evaluate if KVO is strictly necessary or if an alternative observation pattern can be used.
affects: 12.1 and later
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredFundamental bridge between Python and Objective-C, required for all PyObjC framework wrappers.