skillfed

pyobjc

Python<->ObjC Interoperability Module

pyobjc v12.2.2 732.9K downloads/30d#5,199 on PyPI803
Permissive license MIT Active released

What it is and what it does

PyObjC is a Python-to-Objective-C bridge that lets you write native macOS applications using Python instead of Swift or Objective-C. It exposes the full Cocoa framework and related macOS APIs as Python modules, so you can call Objective-C classes, methods, and properties directly from Python code. The package itself is a meta-installer that pulls in pyobjc-core plus framework wrappers covering system services, media, accessibility, and specialized domains.

You use it to build desktop applications for macOS, integrate Python with existing Objective-C codebases, or script macOS system functionality from Python. It supports modern Python versions and is actively maintained. The bridge handles the impedance mismatch between Python's dynamic typing and Objective-C's static type system, making interop relatively transparent for common tasks.

Use it for:

  • Build a full-featured macOS desktop application in pure Python using Cocoa frameworks without learning Swift or Objective-C.
  • Automate macOS system tasks by calling native APIs from Python scripts.
  • Integrate Python data-processing logic into an existing Objective-C macOS application.
  • Access specialized macOS frameworks like AVFoundation or ARKit from Python.
  • Prototype or port a Python app to macOS while leveraging native UI and system capabilities.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyObjC bridges Python and Objective-C, enabling you to write full-featured macOS Cocoa applications in pure Python and access Objective-C frameworks from Python code.

Yes, if you are developing on macOS and want to write Cocoa applications or system tools in Python. The package is actively maintained, has no known vulnerabilities, and offers permissive licensing. Install only on macOS with Python 3.10 or higher; it will not work on Windows or Linux.

Install

pyobjc on PyPI

pip

pip install pyobjc

uv

uv add pyobjc

poetry

poetry add pyobjc

Installing pyobjc

Before you install

Low install friction with a pure-wheel distribution. Actively maintained with a release 3 days old and recent commits; supports current Python versions including 3.10 through 3.15.

License in practice

MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions—only requiring attribution and including the license text in distributions.

Quickstart

pip install pyobjc

import pyobjc_core
# Access Objective-C frameworks through pyobjc-framework-* packages

macOS only; requires Python 3.10 or higher. Will not work on Windows or Linux.

Verify before relying

  • Whether all 162 runtime framework dependencies install cleanly on all supported macOS versions.
  • Performance characteristics when calling Objective-C methods from Python in tight loops.
  • Compatibility with Apple Silicon versus Intel-based macOS systems.
  • Minimum macOS version requirement for runtime compatibility.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 162 — pyobjc-core, pyobjc-framework-libdispatch, pyobjc-framework-libxpc, pyobjc-framework-Accessibility, pyobjc-framework-AdServices, pyobjc-framework-AdSupport, pyobjc-framework-AppTrackingTransparency, pyobjc-framework-ARKit, pyobjc-framework-AudioVideoBridging, pyobjc-framework-AuthenticationServices, pyobjc-framework-AutomaticAssessmentConfiguration, pyobjc-framework-AVKit, pyobjc-framework-AVFoundation, pyobjc-framework-AVRouting, pyobjc-framework-Accounts, pyobjc-framework-AddressBook, pyobjc-framework-AppleScriptKit, pyobjc-framework-AppleScriptObjC, pyobjc-framework-ApplicationServices, pyobjc-framework-Automator, pyobjc-framework-BackgroundAssets, pyobjc-framework-BrowserEngineKit, pyobjc-framework-BusinessChat, pyobjc-framework-CFNetwork, pyobjc-framework-CalendarStore, pyobjc-framework-CallKit, pyobjc-framework-Carbon, pyobjc-framework-Cinematic, pyobjc-framework-ClassKit, pyobjc-framework-CloudKit
Maintenance actively maintained — 3 days since the last release
Last repo commit
First released
Downloads 732,911/month — #5,199 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyobjc-12.2.2-py3-none-any.whl

Keywords: Objective-C, bridge, Cocoa

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS X :: CocoaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: MacOS :: MacOS XProgramming Language :: Objective CProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: Free Threading :: 3 - StableTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: User Interfaces

Tags

python objective-c bridgecocoa applications pythonmacos framework bindingspython objc interopwrite cocoa apps in pythonobjective-c from pythonmacos native development python
macos-nativecocoa-bindingsinterop

More Python Modules packages