python学习——初次接触(python,wxpython,Boa,py2exe)

 

前言

长期使用java做web开发,有时候需要做一些小工具的话,优先考虑的一般是写ant或bat等脚本,因为开发较快,并且很容易集成到IDE中。不过有时候一些桌面程序级别的工具也是需要的,比如说写一些文档生成相关的工具等。

这个时候采用java是不太合算的,因为开发效率不高(虽然有netbeans,eclipse上也有swt designer),性能也有一点影响,而且还必须要有JRE的支持。采用.net框架倒是开发效率挺高,而且性能也不错,但是IDE价格较高,程序无法移植到其他平台,并且也需要有CLR的支持。

 

没招,就只有找找看其他的编程语言了。

在网上搜索了一下,发现Python可能是一个很好的替代品:面向对象的脚本语言,稍微修改一下就可以实现跨平台,有wxPython这种GUI插件的支持,使用py2exe等打包工具打包之后的文件大小也远小于同样功能的java程序,经过某些类似于psyco工具的处理之后,性能也还不错。缺点也有,就是没有一个可以媲美visual studio.net的IDE,不过也有Boa Constructor和eclipse插件pydev这样的工具,应该可以忍受了。

而且python作为google的官方编程语言之一,现在在编程语言排行榜上排名前10,那么就肯定是优点胜过缺点的。那么就先简单地试用一下总是可以的吧。

 

断断续续的用了几天时间来了解相关的工具,语法,终于写出了一个最简单的GUI程序,并且打成了一个程序包,拷贝到到其他PC上运行成功。虽然中间遇到一些问题,但也学习了很多,所以先写blog记下来。能帮到其他人就更好了。

 

工具准备

python现在的最新版是3.1.1,而且3.0之后的版本的语法与之前的版本相比已经有了一定的变更,但是相关的wxpython等还没有支持到这么高的版本,为了能够使用wxpython来编写GUI程序,只能放弃新版本了。所以选择了2.x系列中的最新版:2.6.2,同样wxPython也选择了for2.6的版本wxPython2.8-win32-unicode-2.8.10.1-py26。然后下载最新的Boa Constructor:boa-constructor-0.6.1.bin.setup.exe。(下载地址参见参考资料)

按顺序依次安装:python2.6.2 -> wxPython2.8 -> Boa Constructor.

※不过之后因为要使用py2exe打包的原因,把版本下降成了2.5系列。

 

入门

安装好之后,就可以直接使用了。python自带了一个名字叫IDLE的开发环境,不写GUI程序的话,还是很好用的。打开工具,写一句print "hello world",敲回车,马上就可以看到效果了,呵呵,似乎入门很容易。

 

从网上下载了一份ppt格式的教程,简单的了解一下基本语法,然后按照教程中的示例代码练习了一下,就算入门了。相比java和.net的庞大类库,python算是蛮简单的,而且本身是动态语言,所以非常的灵活。动态语言是未来的趋势,多练习点只有好处。

 

GUI

虽然IDLE基本上可以满足简单的程序,但我的主要目的还是要做GUI程序,所以上手Boa是必不可少的。打开Boa之后一看,界面确实有点简单,不过GUI程序的必备工具(工具栏,属性查看器,编辑器)一应俱全,所以也没有什么特别的。只不过有一点不爽,就是这三个东东并不是像平时使用的IDE那样集成在一个窗口中的,而是分属于三个不同的窗口,在使用"Alt + Tab"键切换的时候,一次只能切换一个窗口,很不爽,不知道是从哪里参照的用户习惯。

 

参考这篇文章(Boa constructor简介 )中的介绍,写了一个只有一个button的界面出来。

简单的步骤如下:

1. 先创建一个wx.App,同时会自动创建一个wx.Frame

2. 通过Editor中的Frame Designer往Frame中添加了一个wx.Panel

3. 跟2类似的步骤往wx.Panel中添加了一个button

4. 在Inspector窗口中,给button增加一个单击事件

5. 在这个单击事件的函数的event.skip()前面,增加如下代码(弹出一个确认窗口)

dlg = wx.MessageDialog(self,   u'yes',
                                   u'You got it~',
                                   wx.OK | wx.ICON_INFORMATION
                                   )
dlg.ShowModal()
dlg.Destroy()

6. 保存以上代码,然后按F9运行,就可以看到一个带button的窗口,点击button又会弹出一个confirm窗口。

OK,至此程序创造成功。

 

打包

了解了一下,发现有python的打包程序至少有十几个之多,其中出名的有py2exe,pyinstaller,pypackage。本次学习选用了py2exe。

 

下载了py2exe-0.6.9.win32-py2.6.exe,安装上简单试用了一下。

首先,先在之前用Boa创建的目录下新建了一个mypy.py文件,里面内容为:

from distutils.core import setup
import py2exe

setup(windows=["App1.py"])

 

然后执行命令:python mypy.py py2exe,出现错误。

错误信息如下:

error: MSVCP90.dll : No such file or directory

查看网友的文章,可以肯定是这一个版本的问题,虽然也有解决的方法,但是并不太好,所以最终选择了直接安装低版本,版本低就相对要稳定的多嘛。

于是乎,python-2.5.4.msi,wxPython2.8-win32-unicode-2.8.10.1-py25.exe,py2exe-0.6.9.win32-py2.5.exe全部down了下来,并且把之前的版本都替换了。

再次试用py2exe打包,终于成功的获得了一个App1.exe和一堆相关的文件,总文件大小约14M多,虽然也是很大,不过比起带JRE的程序来讲,还是小的多了,可以忍受。

 

然后把程序拷贝到其他机器上运行,又出错了。

错误信息是找不到gdiplus.dll文件。

神了,这种事情都发生。到机器上搜索了一下,这个文件在很多软件的安装目录下都有,在wxpython的目录下也有的。就是不知道为什么py2exe就是没有导出来,无语,看来这个版本也不是完美的。忍了,把guiplus.dll直接拷贝到打包出来的目录下,然后在其他机器上运行,终于OK了,看来以后这一步手动操作是避免不了的了。

 

这次就算完整的走了一圈了。可是怎么看那个exe程序的windows窗口外形的图标都感觉特别不爽。于是到自己的硬盘上找了一个好看的图标放到程序的目录下,然后修改mypy.py的内容如下:

from distutils.core import setup
import py2exe

setup(windows=[{"script":"App1.py","icon_resources":[(1,"A0052345.ico")]}])

执行命令python mypy.py py2exe,OK,exe文件的图标被成功地替换了。

呵呵,这个最简单的GUI程序就算出炉了。

 

总结

经过这么一次折腾,终于对python以及python相关的工具有了一些了解。


总的来说,python是一种面向对象的解释性编程语言,近似于伪代码的语法,还是非常易于学习的。而且作为一种黏合剂语言,它的用途也是非常的广泛。不过在IDE方面还稍微有点弱,即便是几个商业版本的IDE,也不是特别让开发者满意。

 

不过我现在的目的就是可以拿来做一些小的带有界面的工具而已,也不需要太强大的IDE,暂时还是可以满足的。以后要找机会尝试一些eclipse + pydev。毕竟,以eclipse的强大,相信这个IDE很有希望成为开源的python IDE中的老大哥。

 

参考资料:

1. Python_百度百科: http://baike.baidu.com/view/21087.htm

2. python: www.python.org

3. wxpython: www.wxpython.org

4. Boa Constructor: http://sourceforge.net/projects/boa-constructor/

5. 啄木鸟 Pythonic 开源社区: http://www.woodpecker.org.cn/

6. Boa constructor简介:http://blog.163.com/caodixy/blog/static/50940488200951031431510/

7. Python 应用发布技术:http://wiki.woodpecker.org.cn/moin/PyExe

 


 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在嵌入式web服务器boa框架的基础上, 使用C语言cgi, 或者Python脚本, 结合HTML + javascript + ajax 的嵌入式web系统的开发实例 html 中使用javascritp + ajax 从C语言生成的cgi文件的get, set 一些值. boa服务器的相关配置参数说明: http://www.cnblogs.com/liuweiqiang/p/3859130.html boa安装包文件名: boa-for-hi3516a.tar.gz boa.conf 文件的保存路径: cat /etc/boa/boa.conf boa可 执行文件的路径: /usr/local/bin/boa, 可以设置为: 系统启动的时候, 这个进程自动启动 boa.conf 文件的重要参数 保存html文件的目录 DocumentRoot /www 可以将这个目录, 设置为samb共享文件夹的目录, 方便修改调试 修改完成以后, 肯定要重启boa进程的 保存python脚本, 或者C语言cgi文件的目录 ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 说明: cgi-bin/ 后面的斜杠, 一定要加上 可以将这个目录, 设置为samb共享文件夹的目录, 方便修改调试 修改完成以后, 肯定要重启boa进程的 html文件文件中, 调用python脚本的时候, 指定的路径, 需要有: /cgi-bin, 比如: var url = "/cgi-bin/getuser.py"; 这个是python 或者 var url = "/cgi-bin/output.cgi"; 这个是C语言 说明: 如果发现, html文件, 修改了, 可是在浏览器中, 查看html源代码的时候, 这个代码, 还是旧的, 那么可以通过清空"IE浏览器", "360浏览器"的浏览记录 以上, javascript 可以调用python 同样, 也可以调用C语言生成的cgi文件(其实, 就是可执行文件) C语言 + Html 例子 C语言 CGI实例 http://blog.csdn.net/ajrm0925/article/details/8810342 http://blog.csdn.net/liang890319/article/details/6277900 http://blog.csdn.net/gnefniu/article/details/42432657 上传文件: http://blog.csdn.net/yu_xiang/article/details/7996670 查找文件 find . -type f -name "boa.conf" -print -mount find . -type f -name "boa" -print -mount 四、嵌入式web服务器boa的配置和使用 嵌入式web服务器boa的配置文件为boa.conf, 在boa-0.94.13目录下面,复制该文件到文件 系统的/etc/boa目录下面,打开boa.conf,修改为如下内容: Port 80 User root Group root ErrorLog /dev/console AccessLog /dev/null ServerName SoftEmbed.com DocumentRoot /www DirectoryIndex index.html KeepAliveMax 1000 KeepAliveTimeout 10 MimeTypes /etc/mime.types DefaultType text/plain CGIPath /bin:/usr/bin:/usr/local/bin ScriptAlias /cgi-bin/ /www/cgi-bin/ 几个重要配置参数如下: DocumentRoot: 存放html文档的主目录; DirectoryIndex: 默认返回的html文档; ScriptAlias:cgi脚本虚拟路径对应的实际路径,/www/cgi-bin/为cgi脚本存放的实际路径; 其他配置选项的意义请参考相关资料。 复制boa可执行文件到/usr/sbin目录中, 启动boa进程 重新制作文件系统,系统启动后,在客户端浏览器上输入开发板的ip 地址,例如: http://192.168.0.218, 就可以看到显示的测试网页了,如下图所示 CGI getenv函数的参数详解: http://www.cnblogs.com/ser0632/p/5498228.html s = getenv("环境变量名"); 取得环境变量内容 putenv改变或增加环境变量 int putenv(const char * string); setenv(改变或增加环境变量) http://www.jb51.net/article/71940.htm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值