pyobjc-core
Python<->ObjC Interoperability Module
What it is and what it does
PyObjC-core is the low-level bridge that connects Python to Objective-C on macOS. It handles the translation layer between Python's object model and Objective-C's runtime, allowing you to instantiate Objective-C classes, call methods, and access properties directly from Python code. This is the foundation package; most users will also install framework-specific bindings to access actual macOS APIs.
The package is actively maintained, supports modern Python versions from 3.10 through 3.15 including free-threading variants, and carries no known vulnerabilities. It's a production-stable tool for developers building native macOS applications in Python or integrating Python with existing Objective-C codebases. The medium install friction reflects that it's platform-specific and requires compiled wheels, but those are readily available.
Use it for:
- Write full Cocoa desktop applications in pure Python with access to native macOS UI frameworks.
- Call Objective-C APIs and third-party frameworks from Python scripts running on macOS.
- Embed Python logic into Objective-C applications by bridging between the two languages.
- Prototype or automate macOS system tasks using Python with direct access to native APIs.
- Inspect and interact with Objective-C classes from the Python interactive interpreter.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyObjC-core provides the foundational bridge layer that lets Python code call Objective-C APIs and frameworks on macOS, enabling direct interoperability with native libraries.
Yes, if you are developing on macOS and need to call Objective-C frameworks or build native applications in Python. The active maintenance, permissive license, and lack of known vulnerabilities make it a solid choice. Not applicable on non-macOS platforms; installation will fail outside macOS.
Install
pyobjc-core on PyPI
pip
pip install pyobjc-coreuv
uv add pyobjc-corepoetry
poetry add pyobjc-coreInstalling pyobjc-core
Before you install
Medium install friction due to platform-specific wheels (macOS only, multiple Python versions and architectures). Active maintenance with a recent release (3 days old) and steady repository activity suggest reliable upkeep.
License in practice
MIT license is permissive; you can use this in commercial or proprietary projects with minimal restrictions, provided you include the license notice.
Quickstart
pip install pyobjc-core
import pyobjc_core
macOS only; requires Python 3.10 or later. Installation will fail on non-macOS systems.
Verify before relying
- Whether pre-built wheels cover all intended Python versions and architectures on your target macOS versions.
- Performance characteristics when bridging frequent calls between Python and Objective-C code paths.
- Specific Objective-C classes and methods accessible through the bridge after installation.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,326,223/month — #2,658 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyobjc_core-12.2.2-cp310-cp310-macosx_10_9_universal2.whl; pyobjc_core-12.2.2-cp311-cp311-macosx_10_9_universal2.whl; pyobjc_core-12.2.2-cp312-cp312-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp313-cp313-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp313-cp313t-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp314-cp314-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp314-cp314t-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp315-cp315-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp315-cp315t-macosx_10_15_universal2.whl
Keywords: Objective-C, Cocoa
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pyobjcPyObjC bridges Python and Objective-C, enabling…
permissive · top 15,000 on PyPI
pyobjc-framework-AppleScriptObjCProvides Python bindings to Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-SharedWithYouCoreProvides Python bindings for Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-ClassKitProvides Python bindings to Apple's ClassKit…
permissive · top 15,000 on PyPI
pyobjc-framework-NetworkProvides Python bindings to Apple's Network…
permissive · top 15,000 on PyPI
pyobjc-framework-PhotosProvides Python bindings to macOS's Photos…
permissive · top 15,000 on PyPI
pyobjc-framework-CoreAudioKitProvides Python bindings for macOS's…
permissive · top 15,000 on PyPI
CythonCython is a source code translator that…
permissive · top 1,000 on PyPI
rpy2-rinterfacerpy2-rinterface provides a low-level…
copyleft · top 15,000 on PyPI
rpy2-robjectsProvides a Python interface to call R code and…
copyleft · top 15,000 on PyPI