过长时间学习Python程序开发,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。学习Python程序开发时,你可能会遇到Python程序开发问题,在这里拿出来和大家分享一下。
由于个人对ubuntu的偏爱和熟悉,下面的开发过程无论主机环境还是moblin的平台都采用的是ubuntu,然而,moblin 2.0貌似不再使用ubuntu,而仅支持fedora,不知何故。启动MIC,Platform选择memlow-lpia-ubuntu-hardy,target选择ububtu-mobile,自动生成即可,等待的时间那叫一个长啊。
这也是工具的好与不好,之前敲命令,交叉编译了Gnome Mobile框架的几乎所有模块,吃尽了苦头,但不至于闲着没事干;而由工具自动生成呢,清闲了很多,也不太关心编译的细节。
就是盼着赶快编完,好做测试。接下来,生成Image文件,选择Live RW USB。此时以为大功告成了,点击Launch VM,没有反应...郁闷阿。Google,运行KVM需要CPU支持Intel VT才行,手头又没有MID,那就试试Qemu吧。
把编成的映象文件(Launch VM时选择的文件)直接扔给Qemu,结果“checking device /dev/sda for installation source...”,问题出在哪呢。把映象文件挂到本地也没有看出个所以然,其实,Qemu无法直接跑出画面也在预料之中(此处Qemu的使用可能存在问题 qemu -hda moblin.img)。
由于内核、文件系统由MIC生成,使得很多处理的细节无法得知,但编译的文件总是存在的吧,我想完全可以根据MIC生成的文件来创建Qemu仿真所需的文件。linux启动过程一切顺利,提示输入用户名和密码...再次挂载根文件系统1G.img,删掉shadow?还是用文明一点的办法吧,拷贝本机/etc/shadow到${Mount Dir}/etc。
再次启动,得到了shell,可还是没有图形界面(如果MID需要手工启动X,感觉有点多此一举,问题可能出在配置上,没有深究,跑起X再说)。没有/etc/init.d/gdm,还是startx吧,令人沮丧的事再次发生,“(EE):no valid modes found”。没办法,只能再次挂载根文件系统。
添加Modes “800x480”(仅仅是我添加的模式,不知是否支持其他)。总算见到画面了,也许是费了些周折的缘故吧,觉得Moblin的界面还是很漂亮的。使用同样的方法,可以用Qemu对其他Platform进行仿真(没有一一验证,测试过netbook-lpia-moblin2)。
之所以选择Python,首先,易于移植,Python解释器把源代码转换成字节码,然后再把它翻译成机器语言并运行。不需要担心如何编译程序,如何连接到正确的库等等,只需要把Python程序拷贝到目标机上,它就可以工作了;
其次,最近一直在写Python,觉得它可以快速地把想法变成现实,就懒得用C了;***呢,Python是一种极其流行的解释性语言,我们可以看到在Gnome Mobile的原型中也保留了Python的编程接口。
- class Category(models.Model):
- id = models.AutoField('id', primary_key=True)
- name = models.CharField(maxlength=50)
- code = models.CharField(maxlength=50)
- parentCategory = models.ForeignKey('self', 'id', null=True)
- enable = models.BooleanField()
- def __str__(self):
- return self.name
- class Admin:
- list_display = ('id', 'name', 'code', 'parentCategory')
Python提供了系统调用、线程、GTK等模块,可以利用它搭建原型,验证想法的可行性,当然,它也可以极其方便的应用到Moblin平台的开发。开发应用程序之前,配置环境必不可少,毫无疑问,使用的工具是 Moblin Image Creator,需要保证所需的工具以及库已经安装。
包括Python,核心的模块(python-dbus python-gtk2 python-hildon),由于之前选择的平台是ubuntu,只需要用apt-get就可以轻松的安装这些包了。此时,在moblin上开发Python的环境以及基本建成了。接下来,在桌面上创建图标,并启动相应的Python程序,毫无疑问是Hello World。
【编辑推荐】