热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Py代码打包成SIS安装包文件的方法

用Python做S60系统的软件,免不了要把程序打包发布出来.这里介绍两种有效的方法,一种是在手机上打包,一种是在PC上打包.第一种方法:手机上打包其实关于Pys60程序在手机上打包的软件有好

用Python做S60系统的软件,免不了要把程序打包发布出来.这里介绍两种有效的方法,一种是在手机上打包,一种是在PC上打包.

第一种方法:手机上打包

其实关于Pys60程序在手机上打包的软件有好多,我用的是一款叫做"智能解包"软件,这款软件功能比较强大,它不仅可以完成打包,解包,而且还可以自签名,通用签名,清除签名等软件发布时常用的操作,简单可以说是一步到位,十分方便.界面如下图:

Screenshot0023 Screenshot0024

请选择工具里的大蟒来打包,我直接用"打包"菜单来打包,老是显示要我选择文件,搞不懂.知道的朋友跟我说一声.详细操作过程大家可以在手机上实践.同时这款软件也自还了操作说明,其中最重要的算是PKG文件的修改和配置了,不过整个过程也很简单,一看就知道如何操作.本来它还可以在打包的同时完成签名的,不过在我的机子上签不了,也不知道为什么,只有自己手动完成签名,手动签也只能签通用的.用自己的证书签进也会报错.尽管如此,本人还是推荐用它在手机上打包PyS60的程序.通常我还会用到别一款很出名的手机上签名软件"自由签名",它的功能就比较单一了,操作也更简单.这里就不多说了.

第二种方法:PC上打包

pc上打包相对比较麻烦一点.我用的是Pys60SDK自带的工具"Py2sis",这个工具位于"Epoc32\tools\py2sis"目录下.这是一个py文件的程序,执行带参数这个程序,就可以完成打包.所以关键就在于这些参数的设置.

首先,需要了解每一个参数的意义,关于具体每个参数我就不多说了,简单列一下:

py2sis.py [sisfile] [--uid=0x01234567] [--appname=myapp] [--caps="cap_1 cap_2 ..."] [--presdk20] [--sdk30] [--armv5] [--leavetemp] [--autostart]

其中各参数的意义如下:
src  - Source script or directory
sisfile  - Path of the created SIS file
uid  - Symbian UID for the application
appname  - Name of the application
caps  - A list of capabilities ("NONE", if caps is not given)
presdk20  - Use a format suitable for pre-SDK2.0 phones
sdk30  - Use a format suitable for SDK3.0 phones
leavetemp - Leave temporary files in place
armv5  - Generate armv5 binaries, by default gcce binaries are created. Only in SDK3.0
autostart - Start the application during the device bootstrap (SDK3.0 only)

更多的大家可以参考Py2sis文件夹下的readme文件.里面有详细的说明,还带有例子,不过都是英文的,所以得仔细的读懂才行.

其次,在执行打包之前还要设置一个虚拟盘,打包的过程上要用到.可以在命令行界面输入"subst V: C:\Symbian\9.1\S60_3rd"来设置一个虚拟的V盘代表"C:\Symbian\9.1\S60_3rd"目录.注意,这里的"C:\Symbian\9.1\S60_3rd"要根据你的实际情况来.它指的是你的"Epoc32"文件夹所在的路径.设差了可以用"subst V: /D"来删除V盘.

通常一条比较完整的在命令行下的打包执行命令就如下:

V:\epoc32\tools\py2sis\py2sis.py V:\epoc32\winscw\c\python\贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location"  --leavetemp

有时,用上述语句打包会编译错误,提示:

ERROR [Errno 2] No such file or directory: '\\Epoc32\\release\\GCCE\\UREL\\XXXXX.exe'

说是找不到文件,其实在它指定的目录下,那个文件是存在的.其实,它在你安装Pys60SDK的盘符的根目录下也创建出来的名为epoc32的文件夹,把这个文件夹复制到"C:\Symbian\9.1\S60_3rd\Epoc32"中,然后CMD再进入刚才用SDK根目录虚拟出的V盘,还是来到py2sis的目录,再调用一遍就成功了.至于这里面的原因,我想可能SDK安装目录的问题.说到底PY2SIS的设计对目录要求比较列,不能随便更改.

说了这么多,自己要觉得很麻烦,于是用到网友提供的一个批处理文件(自己修改了一下,加入了自动设置虚拟盘等)来搞定这么多的东东:

@echo off
subst V: /D
subst V: C:\Symbian\9.1\S60_3rd
C:\Symbian\9.1\S60_3rd\Epoc32\tools\py2sis\py2sis.py C:\Symbian\9.1\S60_3rd\Epoc32\winscw\c\python\贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location" --leavetemp
xcopy C:\epoc32 V:\Epoc32\ /E /Y
rd C:\epoc32 /Q /S
V:\epoc32\tools\py2sis\py2sis.py V:\epoc32\winscw\c\python\贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location"  --leavetemp
pause

它上面的代码存为.bat文件,至于这里面的一个内容是需要你用自己的路径和名字来替换,我想,只要仔细研究一下,就知道应该怎么替换了.然后执行,就可以在你的当前py2sis目录下得到打好包的sis文件了.

总之,个人还是比较喜欢用手机上打包的工具,直观,配置方便快捷.

<完>


推荐阅读
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在 CentOS 7 环境中使用 MySQL 5.6 镜像启动数据库时遇到权限问题,本文将详细探讨并提供解决方案。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
author-avatar
夕阳红梅乎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有