Bootstrap

在iPad中运行Python

从一个喜欢编程的人的角度看,任何移动设备其实都只是“可编程计算器”。

iPad上也有一个Python的解释器的应用Python for iOS。不过,让人气愤的是,这个应用竟然是收钱的(拿解释器卖钱?!)

也有免费的python解释器,但都有各自的问题:

1.营智python

这个应用太过花哨了。能够编辑并运行脚本,不过,执行只能返回一个结果窗,不能用raw_input(),对很多库的支持也不全。(连decimal都没有)

2.Python Math

这个是一个交互的脚本解释器。不支持多行的输入!

他的库还算是够用的,例如os、sympy等。raw_input()可用。

有一些bug(从int到long的转换有问题),decimal库几乎不可用(可以用sympy替代)。

 

这些事情让我们这种较真的人不禁感慨:我真想自己写一个免费的Python解释器到iPad上!

且慢,Apple有奇葩政策:

1.只能在iPad上运行来自Store的程序。

2.不允许发布任何能够从iPad外部获得源代码的解释器。

所以,想自己编译一个iPad版python解释器,你先花$99注册一个开发者帐号吧。。。

 

不想花钱,我们只能折中:

能否利用免费的python解释器,我们自己再用python实现一个稍微好一点的python环境呢?

想做到这个,我们必须先能够导入一些自己写的模块(例如实现一个能克服int到long转换的bug的decimal库)。在苹果的眼中,这个应该是一个不可能的任务(你怎么确保你使用的没有经过苹果审核的代码里没有恶意的成分?!)

不过,这还是可能的。

Python Math中提供了os模块,并且可以open文件。

于是乎,我们可以构造这样的代码:

open('decimal2.py','w').write('print "hello world"')

想执行的时候:

execfile('decimal2.py')

这样,就可以实现代码文件的导入了。

另外一个好事情是,Python Math里粘贴多行的文本是没有问题的。

下面举个具体的例子:先在pc端找到decimal.py,付出一点时间让他能够在int有bug的环境里工作。

把修改好的decimal.py改成decimal.txt,加上open和write的头。

之后,通过iPad上的一些文字处理应用(例如PlainText),把pc端处理好的代码上传到iPad,之后在PlainText里面全选、复制(注意:PlainText处理超长的文本有巨大的性能问题!)。

然后粘贴到Python Math,回车。这样,就把我们写的库“导入”进去了。

以后我们再想用decimal的时候,只用import decimal2就可以用我们自己写的模块了。

 

有了一个decimal,我们自然想要更多。

例如:

实现一个ed编辑器?

不过,这个就是一个很长的路了。。。

 

转载于:https://www.cnblogs.com/fanhqme/archive/2012/08/11/2634035.html

;