继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python走进iOS:Python 3.13开启移动开发新时代

倚天杖
关注TA
已关注
手记 364
粉丝 47
获赞 187

Python 3.13 推出了一个令人兴奋的更新:官方支持 iOS 作为平台。虽然 Python 在台式机上一直表现强劲,但其在 iOS 上的可用性一直受到限制。随着这次更新,Python 正在向移动开发者敞开大门,变得更加容易使用。本文将深入了解这一更新的意义、入门方法以及它带来的各种可能性。

在开始之前,如果你还没看过我们之前关于 Python 3.13 的另一篇突破性更新的文章,请查看“告别 GIL?了解 Python 3.13 的自由线程模式”(https://medium.com/@pouyahallaj/goodbye-gil-understanding-python-3-13s-free-threaded-mode-63189ba30aec)。

为什么要在iOS上使用Python?

Python 的灵活性和易用性使得它成为从机器学习到 web 开发的各种应用的首选语言。然而,长期以来,iOS 都是一个挑战,由于其应用程序架构和严格的沙盒策略。与可以在桌面环境中全局安装 Python 不同,iOS 需要在每个应用程序中嵌入 Python。

随着Python 3.13的发布,开发人员现在可以无缝地将Python集成到他们的iOS项目中,得益于官方支持和新的嵌入工具,开发人员可以在原生iOS应用中使用Python解释器。对于希望在移动生态系统中利用Python能力的开发人员来说,这一更新是一个游戏规则的改变者。

Python在iOS上的主要特点
  1. 在 iOS 应用中集成 Python

在 iOS 上,Python 是以嵌入式的方式运行的。这表示 Python 被集成到了 iOS 的系统中。

  • 您的应用中捆绑了使用 libPython 的 Python 解释器。
  • Python 标准库和您的脚本被打包成一个独立的捆绑包,并通过 App Store 分发。

开发人员可以利用诸如BeeWare或Kivy之类的工具来简化将Python嵌入iOS应用的过程。这些框架处理了诸多复杂性,从而使您可以专注于编写Python代码。

  1. iOS 兼容版本

Python 3.13 支持 iOS 13.0 及更高版本。开发人员可以在编译时通过 --host 配置选项指定最小的 iOS 版本。例如,使用 --host=arm64-apple-ios15.4-simulator 编译 Python 以模拟 iOS 15.4。

3. 平台特定标识符

在iOS上运行时,Python的sys.platform返回ios。可以通过platform模块获取更多关于运行时环境的详细信息,例如iOS版本或设备型号等。例如,可以使用platform.platform()来获取设备型号。

    import platform  
    print(platform.system())  # 输出的是 'iOS' 或 'iPadOS'  
    print(platform.ios_ver())  # 提供详细的 iOS 版本信息
4. 二进制扩展模块插件

为了遵守App Store的规定,Python的二进制扩展模块需要作为动态库分发在框架内。这需要对Python包进行后处理,将.so二进制文件转换为.framework包。新的AppleFrameworkLoader工具可以确保在运行时Python能够找到并加载这些框架内的动态库。

  1. 编译器占位二进制文件

为了应对 Xcode 的 xcrun 工具带来的问题,Python 3.13 引入了 stub 二进制文件。这些二进制文件作为 xcrun 的外壳,使得更容易在 iOS 上编译第三方 Python 模块,同时保持其可移动性。

为iOS开发设置Python环境

在 iOS 上构建和运行 Python 涉及几个步骤的过程。下面是一个概述:

在 iOS 应用中集成 Python 代码
  • 构建 Python 的 XCFramework :首先构建或获取一个 Python XCFramework。此框架包括专为 iOS 设备定制的 Python 解释器和标准库。
  • 将 Python 集成到您的 Xcode 项目里
  • 将 XCFramework 添加到您的 Xcode 项目中。
  • 配置项目以包含 Python 解释器和标准库。
  • 使用 Objective-C 或 Swift 初始化并与其进行交互。
  • 分发二进制扩展模块:将任何二进制扩展模块转换为框架格式,确保符合 App Store 的政策。
运行 Python 脚本(入门级)

嵌入 Python 后,您的应用可以执行脚本、与标准库交互,并利用 Python 庞大的包生态系统。确保您的应用可以执行脚本、与标准库交互,并利用 Python 庞大的包生态系统。

  • PYTHONHOME 指向的是捆绑的 Python 环境。
  • PYTHONPATH 包含你应用中 Python 脚本和库的路径。
挑战和考虑

虽然 Python 在 iOS 上带来了新的可能性,不过也有一些挑战:

苹果应用商店合规

苹果的App Store有严格的审查流程。Python标准库中的某些部分可能会触发App Store的自动审查拒绝。Python 3.13包含了一个补丁来移除已知有问题的代码,但开发者在提交应用前应彻底测试其应用。

性能与兼容

嵌入 Python 会增加开销,因此对性能要求高的应用可能需要进行优化。由于二进制模块的限制,并不是所有的 Python 库都能在 iOS 上运行。开发者需要仔细评估依赖项,并在模拟器和实际设备上测试应用。

Python 在 iOS 上的下一步会是什么?

Python在3.13版本中对iOS的官方支持是一个重要的进步,但这仅仅是开始。借助像BeeWare和Kivy这样的工具,开发人员可以更容易地将Python集成到他们的移动项目中。随着Python社区继续完善这一支持,我们可以期待更多的改进,使Python成为移动应用开发更具吸引力的选择。

无论你是老手Python开发者,还是刚接触移动开发,使用Python在iOS上提供了令人兴奋的机会来拓展你的开发领域。不妨试试看,看看你能创建出什么吧!

准备好了吗?要去探索吗?

如果你好奇,可以深入了解,可以查阅官方的 Python 3.13 文档,试试看像 BeeWare 和 Kivy 这样的框架。Python 在移动端的未来从现在开始——是时候加入进来了!

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP