把通信录移植道手机上 ============================== 小白把打包好的通信录软件拿到班上去进行展示。“这下,同学们都该要把我拜成大神了吧?”小白想。谁知,当小白兴冲冲的演示完他的通信录之后,同学们的话却让小白的心跌入了谷底。 “这年头谁还用那老土笨重的电脑啊!竟然没有相对应的手机版本,难不成打个电话还得开电脑找号码?!!”小白仔细一想:“也对,打电话还得开电脑找号码,这也的确太麻烦了。对了,如果按照同学说的那样,把通信录移植到手机上,倒是一个能很好解决这个问题的办法。”小白萌生了移植的念头。“我的手机是台PPC,不如我就先尝试把通信录移植到我自己的手机里吧?!不知道有没有Python的手机版本呢?”小白决定到网上去寻找答案。小白打开Google,输入“PPC Python”进行搜索,在搜索结果的第二项,他看见了这个。 ::   http://seewind.blog.51cto.com/249547/46354 (搜索图片暂略) 看完了这篇blog,小白发现PPC上不仅有Python,甚至还有与之相对应的Tkinter库。“太棒了,PPC上不仅有Python,还有Tkinter,有了这些不就可以把我的通信录的Tkinter版本移植到PPC上了吗?”小白马上动起手来,按照那篇 blog 的指引,他首先到 ::   http://pythonce.sourceforge.net/ 下载了PythonCE的最新版本PythonCE2.5,在把文件复制到了PPC上后,小白开始了安装。 .. image:: ../_static/snap/installpy.png “哇咔咔,成功打开了,一个Python Shell呢! .. image:: ../_static/snap/ppcpysrart.png ”接下来就是把PythonCE的Tkinter也安装好,这样通信录的运行环境就搭建完成啦!”小白兴奋道。他又按照文章的指引,到 :: http://prdownloads.sourceforge.net/pythonce/Tkinter-Files.zip?download ftp://ftp.tcl.tk/pub/incoming/tcltk8_4_12_ce-arm.zip 下载到了那两个压缩包,并且把Tk84.dll、TCL84.dll、CElib.dll三个文件复制到了PPC的windows目录中。小白继续看那篇文章,他发现了这些东西: :: tcltk8_4_12_ce-arm.zip包中,只需要tk84.dll文件,是解决一个BUG的。Tcl84.dll、Tk84.dll、celib.dll三个文件复制到PPC的windows目录中。还要将TKinter-Files.zip中的library、Tk8.4两个包含有TCL脚本的目录放到Python能找到的路径里面(我的是这个路径:\SD Card\python\,有点奇怪,为什么是这个路径,我是根据Python运行Tkinter例子脚本时的出错信息试出来的)。这样《DiveIntoPython中文版》的Tkinter例子就可以正常运行拉。 “把他们复制到Python能找到的目录里面?什么是Python能够找到的目录呢?kao,不管啦,还是按照文章说的那样,导入Tkinter模块,然后从错误信息中找出它‘能找到’的路径吧!”小白想。 .. image:: ../_static/snap/tclpatherr.png “哈哈,输出的错误信息中包含这么一大堆的路径,这应该是Python所谓‘能找到’的路径了吧?”小白低吟道。他把library,Tk8.4这两个文件夹复制到其中一个文件夹中,然后尝试导入Tkinter模块,想要验证模块的导入是否成功。 小白输入第一句: :: >>> from Tkinter import * >>> “哇噻,成功导入Tkinter了!没有出错!好,下面我再试试创建一个窗口!”小白迅速按动PPC。 :: r=Tk() r.mainloop() .. image:: ../_static/snap/ppctkok.png “Yeah,成功了,太棒了!这下PythonCE环境算是全搭建完成了!!”小白兴奋道,他已经完成了环境的搭建,接下来,他要进行最重要的一步:Tkinter版通信录的移植。 小白想:“Python的优点是什么呢?简单、快速、跨平台,那么,为什么不能试试直接运行呢?”小白把Tkinter版通信录复制到PPC上,并点击运行。“哇,这界面咋这么大?”小白发现Tkinter版通信录拉到PPc上运行后,出来的界面非常巨大,大小甚至已经超过了PPC的屏幕,“怎么办,怎么办?”小白急的像热锅上的蚂蚁,突然一道灵光闪现,“对,既然超出了PPC的屏幕这么多,那就只要改改代码中有关界面元素的高宽不就得了?”小白马上付诸于实施. .. image:: ../_static/snap/ppcmalastart.png 在经过重重修改和反复运行后,小白成功了。小白兴奋的调试他的软件: 新建个联系人试试? .. image:: ../_static/snap/ppcmalanew.png 再来个查找联系人 .. image:: ../_static/snap/ppcmalafind.png “搞定!一点问题都没有,真是完美的移植” 番外篇: 话说那天小白又在网上搜索“PPC Python”关键词,想看看有没有更多好玩的模块,突然,小白发现了这篇文章:PPC上的Python IDE。 :: http://seewind.blog.51cto.com/249547/46348 (搜素图片暂略) “PPC上的Python IDE?有了它,不就可以用手机随时随地的进行Python程序的修改与编写吗?这多方便啊?”小白想,他决定去看看。 很快,小白按照文章指引,从: :: http://sourceforge.net/projects/vensterce/ 下载到了vensterCE,在按照那篇blog安装好vensterCE后,小白运行了Pyceide.py。 .. image:: ../_static/snap/dialogerr.png “啊!出错了,怎么回事?”小白连忙查看错误输出,他发现错误来自dialog文件的第347行,错误类型是语法错误,小白决定打开这个文件看看。 “kao,怎么是缩进错误,else多后退了八个空格…这是怎么回事?编写者的问题?这编写者也太弱了吧!这都能出错!”小白愤愤道。 在修改好了缩进问题后,小白再次运行软件,这次成功了。 .. image:: ../_static/snap/ceidetext.png 除此之外,小白还找到了能在PPC上运行的PyGame和能在PPC上运行的Wxpython。他决定先把它mark住,请读者朋友帮他进行研究,因为他知道有更重要的事情等待着自己去做。 附录: *PPC上的wx: http://wxpyce.wikispaces.com/Build *ppc上的pygame: http://tailorcai.iteye.com/blog/189463