PyS60开发环境搭建

S60V3 2009-10-13
本文将为您介绍如何在Windows系统下搭建PyS60开发环境,让你为你的爱机写下第一个程序做准备。
第一步,我们需要为电脑安装“诺基亚S60模拟程序”——为什么要安装?我们要做的是为自己的S60系统的手机编写程序,也就是说所写的程序将只能在手机上运行,而电脑是不能运行PyS60程序的,所以我们要先给自己的电脑安装一个模拟程序,把电脑模拟成S60系统,这样我们所写的PyS60程序就可以在电脑上运行调试了。
我们要先下载安装三个程序:
(1)、ActivePerl   下载地址:http://www.onlinedown.net/soft/8364.htm
下载后按照提示进行安装(最好安装在C盘)
(2)、S60SDK (开发工具包) 下载地址:地址很长,点我进入      
在诺基亚官方下载比较麻烦的就是要注册,不过是免费的,只要费一点功夫罢了。
记得选择你所有开发的手机的系统版本,里面有 S60第三版和第二版的SDK,记得要选择适合自己手机的(图一)。
还是按着提示进行安装,安装在C盘吧。

(3)、Sun Java Runtime Environment 
下载地址:
http://www.skycn.com/soft/27213.html
安装Java运行时环境主要是为了使S60SDK显示出来的模拟手机界面是中文的。
现在我们看看我们安装好的S60模拟机:打开 "开始"-"程序"-"S60 Developer Tools"-"3rd Edition FP1 SDK"-"Emulater"  (图二):
图一:下载S60SDK,选择适合的版本  图二:S60模拟器
第二步,在我们的S60模拟手机里安装Python
(1)、先下载 Python SDK 下载地址:
  http://sourceforge.net/project/showfiles.php?group_id=154155
点击 Download 进入下载页面。该网页有提供多个下载文件,在这里要按你刚才下载S60SDK时选择的版本选择对应的PyS60版本。有第二版跟第三版之分。如下图:
    图三:选择合适的PyS60 SDK
(2)、将下载的压缩文件解压,解压后能得到两个文件,一个是:sdk_files.zip  ,另一个是uninstall_PythonForS60_SDK_***.cmd ,这个文件是用来删除已安装的PythonForS60_SDK的,这里我们并不需要管他。将sdk_files.zip  解压,等到一个名字为 epoc32的文件夹,复制整个文件夹到诺基亚S60SDK安装的根目录下,例如我安装的是第三版F1,并且是安装在C盘,我就将epoc32文件夹复制到C:\Symbian\9.2\S60_3rd_FP1\ 目录下,电脑会提示该文件已存在,覆盖就好了。

(3)、现在再次打开S60 SDK的 Emulator  ,模拟器开机后进入菜单,在“安装”目录下可以发现Python了吧,打开Python,并在菜单项里选择 Run Script ,选择ball.py ,感受一下再电脑的S60模拟机上运行PyS60程序的感觉。
    图四:运行ball.py

(4)、如何把我们写的PyS60的程序放到虚拟机里去运行呢?如果你在诺基亚S60SDK的安装文件夹里搜索ball.py ,你就会发现在诺基亚S60SDK的安装文件夹里可以找到\Epoc32\winscw\c\python\ 这个路径,以我的电脑为例就是:C:\Symbian\9.2\S60_3rd_FP1\Epoc32\winscw\c\python
把你写的文件放到这个文件夹里就可以在虚拟机里通过Python运行了。其实Epoc32\winscw\c\中最后的c是指虚拟机的c盘。
第三步,安装Python电脑端的开发工具
(1)、上面我们已经将诺基亚S60的虚拟机安装好了,也为该虚拟机安装好了Python,但是我们如何给我们的手机写PyS60程序呢。如果是高手的话肯定会推荐你用记事本——呵呵,开玩笑的!我们都是菜鸟,所以我们不用记事本。这里向大家推荐Python官方提供的编辑器:IDLE.
下载Python  for windows 先,下载地址:www.python.org 
不推荐大家下载最新的2.6或3.0版,原因是PyS60的项目开发人员们对2.5版情有独钟。在后面我们将会提到的一个将Py文件转换为sis安装文件时需要用到的是Python2.5,所以在这里我们直接下载2.5版本的就好了。
(2)、安装好Python2.5后就可以通过 "开始"--"Python 2.5"--"IDLE (Python GUI)" 来打开IDLE,选择 File - new window ,在弹出的新窗口里面编写Python代码。IDLE支持自动缩进,语法变色等功能,但是我们在这里千万不要按F5哦,因为我们写的是PyS60程序,是要给手机运行的,所以不能直接让电脑运行,而要将文件保存到S60虚拟机的\Epoc32\winscw\c\python\ 目录下,通过S60虚拟机来运行。
    图五:Python Shell     图六:新建的窗口

(3)、一件必须强调的事!!!
当我们为自己的手机写PyS60程序时会发现有时经常会出现一些奇怪的错误,尽管按着书本上教把每一个代码都写对了,但是保存到\Epoc32\winscw\c\python\ 目录下通过S60虚拟机去运行时还是总会出现错误。有一个可能的原因是我们所保存的文件的编码不符合要求,在这里我们保存文档的编码时不仅要保存为utf-8格式,而且必须是 utf-8 无BOM格式编码,其实通过IDLE保存的文件的编码只能设定为utf-8 格式,所以在这里提醒一下大家保存的时候要先通过其他文本编辑器将式转换为 utf-8 无BOM格式编码,阿海推荐一个简单易用的编辑器 Notepad++,这个编辑器同时也可以作为Python代码编辑器,而转换格式的功能在 “格式”菜单中。
第四步,编译与打包PyS60程序
(1)、编译。Python是一种解释性的语言,相对而言其运行效率远没有C/C++等语言高,所以Python官方提供了将py文件编译成二进制码的pyc文件,以提高程序的运行效率。我们如何对已写好的py文件进行编译,一个很简单的办法就是在IDLE中直接输入下面的命令:
  import py_compile
  file=raw_input("请输入需要编译文件的路径:")   #例如我们所要编译的文件在"c:\python25\ball.py"
  py_compile.compile(file)
第一句的意思是:调用Python本身提供的py_compile模块,第二句的意思是将你所要编译的py文档的调用并赋值给file,最后一句就是用py_compile模块的compile方法对file进行编译,编译后可以将该文件进行打包,转换为S60系统下的sis安装文件。
(2)、打包。如果我们的程序在S60虚拟机上测试已经没有问题了,那么我们就可以开始将我们程序打包成sis文件,安装到我们的手机上。首先我们要准备两个文件:ensymble.rar 和  openssl.zip。点击进入下载页面下载后将ensymble.rar解压并将解压得的文件 ensymble.py 复制到你电脑上Python2.5的安装目录下,以我为例的话就是将ensymble.py文件复制到C:\python25\ 中。然后再将openssl.zip 解压,将解压得到的文件复制到 系统盘 windows目录下例如 C:\windows\  。
做好这些后,我们就可以来将我们的程序打包了,在 "开始"--"运行" 中输入cmd,进入命令行模式,然后输入 cd c:\python25\  进入到Python的文件目录下接下来的事情就有点难了,我们要在命令行下输入:Python ensymble.py py2sis 源代码.py --uid=0x12345678 --caps=”ReadUserData+UserEnvironment+WriteUserData” --icon=图标文件.svg 目标程序.sis

下面我要重点解释下这段命令的含义:
1、前面的"Python ensymble.py py2sis"不用解释什么了,就是告诉CMD你要干什么
2、"源代码.py" 这个就是你的源代码的名字,是什么就打什么,直接打名字就可以了,因为我们已经放到了python根目录下了
3、接下来的东西 --(两个减号),后面的都是参数,有些是必要,不能少,有些是非必要,可以去掉。
4、"--uid=0x12345678" (必要)软件的 UID ,不能与别的程序冲突,一般乱填的话没问题吧。。重复的概率蛮小的
5、"--caps=”ReadUserData+UserEnvironment+WriteUserData”" (非必要)caps就是权限,这里包含3个权限,可以自行去掉,我现在也就知道这三个权限,别的以后添加
6、"--icon=图标文件.svg"(非必要),很简单,图标文件,用法同理可得
7、"目标程序.sis" (必要),生成sis文件的名字别
         注意不要漏掉这行命令中间的空格哦,漏掉了就没用了。
老实说这么做实在太麻烦了,所以下面我提供一个简单的方式,我将上面 ensymble.rar  和  openssl.zip 打包成一个安装文件,而且还写了一个程序来完成那个命令行的工作。
目前暂定的学习方向是PyS60的游戏开发+delphi开发PyS60的编程环境
一切都处于入门的阶段啊,慢慢努力!