论坛首页 编程语言技术论坛

搭建python for s60开发环境(含模拟器)

浏览 20309 次
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-11   最后修改:2009-05-11
目标平台: s60 第三版
python for s60版本:1.9.4,这个版本已支持python2.5.x

需要准备的:

1,ActivePerl-5.6.1.638-MSWin32-x86.msi,从http://www.activestate.com/下载
2,S60-SDK-200634-3.1-Cpp-f.1090b.zip从http://www.forum.nokia.com/下载
3,Python_1.9.4.sis,PythonScriptShell_1.9.4_3rdEd.sis,PythonForS60_1.9.4_Setup.exe,Python_1.9.4_SDK_3rdEd_with_OpenC.zip 从https://garage.maemo.org/frs/?group_id=854下载

pc端安装

首先安装ActivePerl-5.6.1.638-MSWin32-x86.msi,按默认next直到完成

接着解压安装S60-SDK-200634-3.1-Cpp-f.1090b.zip,(试用22天,22天后需要一个序列号,注册一个nokia forum帐号,免费获得)安装完成后,C盘有两个目录C:\Symbian和C:\Nokia

解压Python_1.9.4_SDK_3rdEd_with_OpenC.zip,拷贝Epoc32目录至C:\Symbian\9.2\S60_3rd_FP1\Epoc32

安装PythonForS60_1.9.4_Setup.exe,安装后会有一个图形界面工具,可以将py脚本转换为sis

运行模拟器C:\Symbian\9.2\S60_3rd_FP1\Epoc32\Release\Winscw\Udeb\Epoc.exe 进入应用程序管理即可进行测试,python脚本存放路径C:\Symbian\9.2\S60_3rd_FP1\Epoc32\winscw\c\python

(注意,在模拟器上安装sis受限)

手机安装

首先您需要一个蓝牙或数据线

安装Python_1.9.4.sis,PythonScriptShell_1.9.4_3rdEd.sis即可,在应用程序目录中有个PythonScriptShell图标,在手机存储器下会有一个python目录,这是你的脚本存放的位置

上传您的脚本,用PythonScriptShell进行测试



例子:

import os
import appuifw
import e32
import dir_iter

class Filebrowser:
    def __init__(self):
        self.script_lock = e32.Ao_lock()
        self.dir_stack = []
        self.current_dir = dir_iter.Directory_iter(e32.drive_list())

    def run(self):
        from key_codes import EKeyLeftArrow
        entries = self.current_dir.list_repr()
        if not self.current_dir.at_root:
            entries.insert(0, (u"..", u""))
        self.lb = appuifw.Listbox(entries, self.lbox_observe)
        self.lb.bind(EKeyLeftArrow, lambda: self.lbox_observe(0))
        old_title = appuifw.app.title
        self.refresh()
        self.script_lock.wait()
        appuifw.app.title = old_title
        appuifw.app.body = None
        self.lb = None

    def refresh(self):
        appuifw.app.title = u"File browser"
        appuifw.app.menu = []
        appuifw.app.exit_key_handler = self.exit_key_handler
        appuifw.app.body = self.lb

    def do_exit(self):
        self.exit_key_handler()

    def exit_key_handler(self):
        appuifw.app.exit_key_handler = None
        self.script_lock.signal()

    def lbox_observe(self, ind = None):
        if not ind == None:
            index = ind
        else:
            index = self.lb.current()
        focused_item = 0

        if self.current_dir.at_root:
            self.dir_stack.append(index)
            self.current_dir.add(index)
        elif index == 0:                              # ".." selected
            focused_item = self.dir_stack.pop()
            self.current_dir.pop()
        elif os.path.isdir(self.current_dir.entry(index-1)):
            self.dir_stack.append(index)
            self.current_dir.add(index-1)
        else:
            item = self.current_dir.entry(index-1)
            if os.path.splitext(item)[1] == '.py':
                i = appuifw.popup_menu([u"execfile()", u"Delete"])
            else:
                i = appuifw.popup_menu([u"Open", u"Delete"])
            if i == 0:
                if os.path.splitext(item)[1].lower() == u'.py':
                    execfile(item, globals())
                    self.refresh()
                    #appuifw.Content_handler().open_standalone(item)
                else:
                    try:
                        appuifw.Content_handler().open(item)
                    except:
                        import sys
                        type, value = sys.exc_info() [:2]
                        appuifw.note(unicode(str(type)+'\n'+str(value)), "info")
                return
            elif i == 1:
                os.remove(item)
                focused_item = index - 1

        entries = self.current_dir.list_repr()
        if not self.current_dir.at_root:
            entries.insert(0, (u"..", u""))
        self.lb.set_list(entries, focused_item)

if __name__ == '__main__':
    Filebrowser().run()



  • 大小: 55.7 KB
  • 大小: 21.3 KB
  • 大小: 19 KB
  • 大小: 21.4 KB
  • 大小: 7 KB
   发表时间:2009-05-28  
Nokia还是很重视python for s60的开发的,1.9.5出来,每个月的24号出一个版本,离2.0不远了,今年就能出2.0版本啦。明年nokia开始上Maemo系统了。不知道python for Maemo是否可以玩啊。。
同道中人,有空多交流
0 请登录后投票
   发表时间:2009-05-29  
请问s60第五版,支持吗?
0 请登录后投票
   发表时间:2009-05-29   最后修改:2009-05-29
iamsk 写道
请问s60第五版,支持吗?

支持,看这里https://garage.maemo.org/frs/?group_id=854



0 请登录后投票
   发表时间:2009-05-30  
jamiesun 写道
iamsk 写道
请问s60第五版,支持吗?

支持,看这里https://garage.maemo.org/frs/?group_id=854



 

恩,谢谢,我看到1.95的sis文件还没有,pythonscriptshell也没有,不知为何?暂时只能用1.94吗?

我第一次用s60系统,多谢指导!

0 请登录后投票
   发表时间:2009-06-01  
bubill 写道
Nokia还是很重视python for s60的开发的,1.9.5出来,每个月的24号出一个版本,离2.0不远了,今年就能出2.0版本啦。明年nokia开始上Maemo系统了。不知道python for Maemo是否可以玩啊。。
同道中人,有空多交流


python在maemo上已经有很多库了
http://pymaemo.garage.maemo.org/
0 请登录后投票
   发表时间:2009-06-03  
因为你的文章,我刚买了一部E66 。
0 请登录后投票
   发表时间:2009-06-03  
我要买5800,大屏幕,不过为了用wifi,只能买水货了
1 请登录后投票
   发表时间:2009-06-04  
E71呀。。
0 请登录后投票
   发表时间:2009-06-11  
5800XM很水产啊。。不建议购买。。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics