对,你没有看错,就是使用Python开发iOS程序!

我们见过使用JS、Lua、Ruby开发iOS程序的,但是基本没有见过使用Python开发iOS程序(软件)的,这是为什么?关于这个问题,我后面会回答。

那么,怎么用Python开发iOS程序呢?

其实我们最主要解决的就是下面几件事情:

在iOS App中安装Python解释器。

搭建Python和objc通信的桥梁。

如何配置工程并开发。

如果不使用UIKit这些,那么就要使用OpenGL ES这些了,这种方式,主要是用于开发游戏的,我们这里不涉及这些。

当然,以下所有内容都是在一台已经安装了Xcode的Mac上进行的。

在iOS App中安装Python解释器

Python-iOS-support

pybee开源了一个可以嵌入到iOS工程中的Python编译脚本,具体位置在这:

https://github.com/pybee/Python-iOS-supp...

默认是使用Python 3.4.2,编译x86_64、i386、ARMv7、ARMv7s、ARM64共5个版本,然后打成一个臃肿包,可选framework或者.a。

如果真的要用于生产环境的话,只要把Makefile中的TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.i386 iphoneos.armv7 iphoneos.armv7s iphoneos.arm64

修改为:TARGETS-iOS=iphoneos.armv7 iphoneos.arm64

我们只需要支持ARMv7和ARM64即可,ARMv7s可以兼容ARMv7,所以可以让包小一些。

修改Python版本的地方在:PYTHON_VERSION=3.4.2

替换为需要版本即可。

编译

切到Python-iOS-support目录,设置编译参数,直接编译。我们这只需要iOS版本,所以直接make iOS即可。

编译成功之后,会在build目录上生成Python.framework和OpenSSL.framework。

搭建Python和objc通信的桥梁

rubicon-objc是一个连接Python和objc的桥梁。

首先,我们需要安装一下:pip install rubicon-objc

调用objc的方式和以前objc直接的写法很像,只是有一些需要改变,比如:

方法名不使用:,而是使用_。

多参数需要使用Python的方式

如何配置工程并开发

创建工程

Python所需要的工程和直接用Xcode创建的不太一样,手动改写的话,还比较麻烦,所以我们直接用模板工具生成。

cookiecutter是一个可以在模板中快速创建工程的一个工具,Python-iOS-template是pybee开源的一个使用Python开发iOS工程的模板。

首先,我们需要安装cookiecutter,直接使用pip安装即可:pip install cookiecutter

创建完工程生成的目录:

app目录是放置我们创建的python文件的地方。

app_packages目录是放三方包的地方,等同于我们在电脑端的site_packages文件夹。

工程里面可以同时存在objc文件和python文件,两者可以各自运行,并不冲突。

python可以在ios上运行吗_python可以开发ios吗相关推荐

  1. ios上运行python_iOS上的Python

    ios上运行python This holiday I discovered Pythonista, and my mind was blown. 这个假期,我发现了Pythonista ,这让我很震 ...

  2. 苹果手机上运行python_【后端开发】python能在苹果手机上运行吗

    Pythonista是在iPad和iPhone上编写Python脚本的一个完整的开发环境.它包含了许多示例:绘画游戏动画.图像处理.自定义用户界面和自动化脚本. 除了强大的标准库之外,Pythonis ...

  3. python能在苹果手机上运行吗

    Pythonista是在iPad和iPhone上编写Python脚本的一个完整的开发环境.它包含了许多示例:绘画游戏动画.图像处理.自定义用户界面和自动化脚本. 除了强大的标准库之外,Pythonis ...

  4. 如何在iOS上运行React Native应用

    by Soujanya PS 通过Soujanya PS 如何在iOS上运行React Native应用 (How to run a React Native app on iOS) I recent ...

  5. python项目在jenkins上运行-2(姐妹们我又来了)

    还记得我上篇文python项目在jenkins上运行-1(心路历程,被自己蠢哭),在jenkins工作空间构建项目嘛 没错,那个笨蛋就是我 上篇文还喜滋滋的觉得自己搞定了大问题.当然,上篇文的处理方法 ...

  6. ios 上运行linux,你可曾想过在iOS上跑Linux?

    你可曾想过在IOS设备上运行Linux系统?或者用shell来传输文件.编写脚本,又或者使用Vi来开发代码? Here is a good news,现在有了一个叫iSH的东西,你可以使用它在IOS设 ...

  7. 在哪个Linux发行版上运行python,怎么在linux上运行python

    Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...

  8. python能在ipad上运行吗_如何用iPad运行Python代码?

    其实,不只是iPad,手机也可以. 痛点 我组织过几次线下编程工作坊,带着同学们用Python处理数据科学问题. 其中最让人头疼的,就是运行环境的安装. 实事求是地讲,参加工作坊之前,我已经做了认真准 ...

  9. 在ios上运行安卓计算机软件,安卓竟然也能运行iOS,苹果怒了!

    iPhone最大的优势是什么? 答案肯定是iOS. 很多人离不开iPhone, 就是因为其丝滑般的系统,强大的生态. 但是,如果这种优势不复存在呢? 也许你会说,怎么可能? 目前的安卓还比不了iOS. ...

最新文章

  1. 2018全球智能+新商业峰会倒计时2个月,5000名AI从业者将出席
  2. Redis 官方可视化工具,功能真心强大!
  3. react-navigation 使用教程(配完整项目)
  4. poj 1737男人八题之一 orz ltc
  5. axure9 邮件点击效果_总是收到无关的工作邮件?这个有意思的工具可以帮你消灭它们...
  6. 如何做好配电室、临时用电安全管理?
  7. 中国钠离子电池行业竞争需求状况及投资盈利分析报告2021-2027年版
  8. php 查询数据库返回json数据
  9. 数组初始化使用(写)new与不使用(不写)new
  10. springMVC环境搭建
  11. 打开SharePoint 2013 web application显示iis 欢迎页面
  12. Java 多线程 之 wait等待 线程实例
  13. 西门子PLC与DCS通讯
  14. 联想u盘启动linux,联想ThinkPad L540笔记本BIOS设置u盘启动教程
  15. Week3 Syntactic Parsing(句法分析)
  16. 虚拟表格(大数据表格)
  17. 实验3 STP简单配置及介绍
  18. DouPHP模块化企业网站管理系统源码 v1.6
  19. 你真的了解分类模型评估指标都有哪些吗?【附Python代码实现】
  20. SpaceX crew demo-2, 关于第一宇宙速度

热门文章

  1. Prometheus学习笔记(三)Alertmanager报警模块集成钉钉/企业微信机器人
  2. 《deep learning》学习笔记(3)——概率与信息论
  3. Java获取最近12个月
  4. 前所未有的家庭杜比影院!飞利浦欧风OLED804电视值得期待
  5. docker compose +ElasticSearch集群 + kibana +SpringBoot/php 使用
  6. 全球与中国聚酯纤维市场深度研究分析报告(2022)
  7. 索航科技技术类开发人员简历-本人
  8. Python全栈(十)Django框架之6.ORM模型基本使用
  9. 小学机器人编程需要学什么
  10. Nao机器人实现语音识别