Python-Apple-support跨平台构建详解:支持macOS/iOS/tvOS/watchOS/visionOS

【免费下载链接】Python-Apple-support A meta-package for building a version of Python that can be embedded into a macOS, iOS, tvOS or watchOS project. 【免费下载链接】Python-Apple-support 项目地址: https://gitcode.com/gh_mirrors/py/Python-Apple-support

Python-Apple-support是一个元包,专门用于构建可嵌入macOS、iOS、tvOS、watchOS或visionOS项目的Python版本。它通过下载、打补丁和构建Python及选定的先决条件的胖二进制文件,并将它们打包为可整合到Xcode项目中的框架,为开发者提供了便捷的跨平台Python集成解决方案。

核心功能与支持范围 🚀

Python-Apple-support支持多种Apple平台,包括:

  • macOS:支持macOS 11(Big Sur)或更高版本,兼容x86_64和arm64架构
  • iOS:支持iOS 13.0或更高版本,适用于iPhone、iPad等设备
  • tvOS:支持tvOS 12.0或更高版本,适用于Apple TV设备
  • watchOS:支持watchOS 4.0或更高版本,适用于Apple Watch设备
  • visionOS:支持visionOS 2.0或更高版本,适用于Apple Vision Pro

该项目构建的二进制文件支持多种架构,包括x86_64和arm64(macOS)、arm64(iOS和Apple TV设备)、arm64_32(watchOS设备)等,确保代码能在各种Apple设备上运行。

快速开始:3种使用方式

1. 使用Briefcase(推荐)

最简单的使用方式是通过Briefcase创建项目。Briefcase会自动下载预编译的支持包,并将其添加到Xcode项目中(对于macOS,则添加到预构建的存根应用程序中)。

2. 下载预构建框架

您可以从项目的发布页面下载预构建的框架,然后手动添加到您的项目中。

3. 手动构建框架

如果您需要自定义构建,可以按照以下步骤操作:

  1. 克隆仓库:

    git clone https://gitcode.com/gh_mirrors/py/Python-Apple-support
    cd Python-Apple-support
    
  2. 运行构建命令:

    • 构建所有平台:makemake all
    • 仅构建macOS:make macOS
    • 仅构建iOS:make iOS
    • 仅构建tvOS:make tvOS
    • 仅构建watchOS:make watchOS
    • 仅构建visionOS:make visionOS

构建完成后,生成的支持包将以.tar.gz文件的形式存放在dist文件夹中。每个支持包包含VERSIONS文本文件和Python.xcframework多架构构建的Python运行时库。

手动集成到项目

添加到Xcode项目

虽然Briefcase是官方推荐的使用方式,但您也可以手动将Python支持包添加到任何Xcode项目中。基本步骤包括:

  1. 将Python XCFramework添加到项目中
  2. 在代码中初始化Python运行时
  3. 配置必要的环境变量

详细集成步骤可参考CPython使用指南:

对于tvOS、watchOS和visionOS,可以大致遵循iOS指南的说明,在第一个脚本中更改一些平台名称。

Objective-C初始化示例

在Objective-C中初始化Python运行时的基本代码:

#include <Python/Python.h>

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString *pythonHome = [NSString stringWithFormat:@"%@/python", resourcePath, nil];
NSString *appPath = [NSString stringWithFormat:@"%@/app", resourcePath, nil];

setenv("PYTHONHOME", [pythonHome UTF8String], 1);
setenv("PYTHONPATH", [appPath UTF8String], 1);

Py_Initialize();
// 现在Python解释器已准备好使用

Swift初始化示例

在Swift中初始化Python运行时的基本代码:

import Python

guard let pythonHome = Bundle.main.path(forResource: "python", ofType: nil) else { return }
let appPath = Bundle.main.path(forResource: "app", ofType: nil)

setenv("PYTHONHOME", pythonHome, 1)
setenv("PYTHONPATH", appPath, 1)
Py_Initialize()
// 现在Python解释器已准备好使用

访问Python运行时

有两种方式可以在项目代码中访问Python运行时:

1. 嵌入式C API

您可以使用Python嵌入式C API来调用Python代码并与Python对象交互。这是一个原始的C API,可同时用于Objective C和Swift。

2. PythonKit(Swift专用)

如果您使用Swift,可以考虑使用PythonKit,它提供了一个Swift API来运行Python代码。使用方法如下:

  1. 将Python Apple Support包添加到项目中并实例化Python解释器
  2. 使用Swift Package Manager添加PythonKit到项目
  3. 导入并使用PythonKit:
import PythonKit

let sys = Python.import("sys")
print("Python Version: \(sys.version_info.major).\(sys.version_info.minor)")
print("Python Encoding: \(sys.getdefaultencoding().upper())")
print("Python Path: \(sys.path)")

构建二进制Wheels

该项目打包了Python标准库,但不涉及构建二进制wheels。macOS的二进制wheels可以从PyPI获取。Mobile Forge项目提供了构建iOS二进制wheels的工具(也可能适用于tvOS、watchOS和visionOS,但尚未经过测试)。

支持的Python版本

当前分支构建的是Python 3.14的打包版本。其他Python版本可通过克隆主仓库的其他分支获得:

历史上支持但不再维护的版本包括Python 2.7、3.4-3.9。

总结

Python-Apple-support为在Apple平台上嵌入Python提供了完整的解决方案,支持从macOS到visionOS的全系列Apple设备。无论是通过Briefcase快速集成,还是手动构建定制框架,都能满足不同开发者的需求。通过Objective-C或Swift的简单初始化,即可在项目中无缝使用Python的强大功能,为跨平台应用开发带来更多可能性。

详细使用指南请参考项目中的USAGE.md文件。

【免费下载链接】Python-Apple-support A meta-package for building a version of Python that can be embedded into a macOS, iOS, tvOS or watchOS project. 【免费下载链接】Python-Apple-support 项目地址: https://gitcode.com/gh_mirrors/py/Python-Apple-support

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐