在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編輯器?

不過,這個就是一個很長的路了。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM