yefangok

学习再学习

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  4 Posts :: 0 Stories :: 13 Comments :: 2 Trackbacks

公告

昵称:
园龄:5年9个月
粉丝:0
关注:0

搜索

 
 

常用链接

我的标签

最新评论

置顶随笔 #

摘要: 现在潮流兴orm,在博客园关于orm的充满每一个角落。所以我也来赶一赶这个潮流,拿起Nhibernate 就开始百度和google。闲话一下,为什么用NHibernate 呢。不为什么,就是学习ado.net vnext的成本太高(竟然English的VS才可以安装),加上Nhibernate 比较多人研究(神州行:哪家人多我用哪家) ,就一下子决定学习Nhibernate 了。但Nhibernate 就是Nhibernate ,今天研究了一天才搞出个hello world.真累人,在这里就先记录一下,让更多像我一样刚刚学Nhibernate 的人少走弯路。阅读全文
posted @ 2007-01-25 01:08 昉 阅读(4900) 评论(13) 编辑

2010年11月16日 #

py2exe使用方法

py2exe

一、简介
py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

二、安装py2exe
http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。

三、py2exe的用法
如果你有一个名为helloworld.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:
# mysetup.py
from distutils.core import setup
import py2exe

setup(console=["helloworld.py"])
然后按下面的方法运行mysetup.py:
python mysetup.py py2exe
上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。
如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。
dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

默认情况下,py2exe在目录dist下创建以下这些必须的文件:
1、一个或多个exe文件。
2、python##.dll。 
3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。
4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo
上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。

py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。
运行下面个命令,将显示py2exe命令的所有命令行标记。
python mysetup.py py2exe --help

四、指定额外的文件
一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。
如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。
示例如下:
# mysetup.py
from distutils.core import setup
import glob
import py2exe

setup(console=["helloworld.py"],
      data_files=[("bitmaps",
                   ["bm/large.gif", "bm/small.gif"]),
                  ("fonts",
                   glob.glob("fonts\\*.fnt"))],
)
说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

五、Windows NT services
你可以通过传递一个service关键字参数给setup函数来建造Windows NT services
,这个service参数的值必须是一个Python模块名(包含一service类)的列表。
示例如下:
# mysetup.py
from distutils.core import setup
import py2exe

setup(service=["MyService"])
所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

六、COM servers

你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。示例如下:# mysetup.pyfrom distutils.core import setupimport py2exesetup(com_server=["win32com.server.interp"])默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

 

七、本人补充

补充一下,如果要把python编译的所有文件打包到一个exe中,就需要在setup()这个函数中,要设置2个参数:options中的bundle_files和zipfile。

其中bundle_files有效值为:

  • 3 (默认)不打包。
  • 2 打包,但不打包Python解释器。
  • 1 打包,包括Python解释器。
example: options = {"py2exe":{"bundle_files": 1}}   

 

zipfile的有效值为:

不填(默认) 生成一个library.zip文件

None 把所有东西打包进.exe文件中   

贴一个自己写的代码

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 

#安装成windows服务的python脚本
#内容:
#url:  http://desert3.javaeye.com/blog/765968
from distutils.core import setup
import py2exe

options = {"py2exe":{"compressed"1#压缩  
"optimize"2
"bundle_files"1 #所有文件打包成一个exe文件
}}   

setup(
service=["PyWindowsService"],
options=options,
zipfile=None)

 

 

posted @ 2010-11-16 13:10 昉 阅读(148) 评论(0) 编辑

2009年12月22日 #

第一级:入门

(1) C

《Linux C编程一站式学习》 http://z.xiaoi.com/r?www.china-pub.com%2F196188

个人认为是最佳的 C 入门中文教材,建议购买实体书,当然也可以看网上的免费版。不过电子书容易分散精力不如实体书好。

《C 语言核心技术》英文版《C in a nutshell》

经典的牛头书,适合做工具书,尤其是后面标准库章节。

其他几本经典英文版图书,可以看电子版或者纸质影印版。

《C Programming Language 2nd Edition (k & r)》

(2) 汇编

《王爽 - 汇编语言 (第2版)》

最佳汇编入门教材,目前中文版里无出其右。

《IBM-PC 汇编语言程序设计》

人人都有的大学教材,作为工具书还是很方便的。

《Windows 环境下32位汇编语言程序设计 (第2版)》

这本书可看可不看,日常能用到的东西并不多。

其他基本汇编相关的杂书,适合有一定基础的同学。

《黑客反汇编揭秘》
《加密与解密, 第三版》

 

第二级:提升

(1) 计算机系统

《深入理解计算机系统(修订版)》

对于了解相关技术背景很有作用,可以做闲书看。

(2) 操作系统

《Linux系统管理技术手册(第二版)》
《深入解析Windows操作系统 第4版》
《深入理解Linux内核(第二版)》

这基本书都需要一定得基础和耐心,不见得要搞懂所有的知识点,但一定要明白相关的技术背景和大概情况。这对于我们做应用开发有很多好处,慢慢才能体会。适合有时间就翻翻。

 

第三级:开发

(1) 基础理论

《编译原理(原书第2版)》

还有其他几本书,包括数据结构和算法的。可以按个人的习惯筛选,考虑到专有名词太多,中文翻译的种种问题,我个人觉得看英文版是个不错的选择。

(2) 系统编程

《天书夜读:从汇编语言到Windows内核编程》
《Windows核心编程(第5版) 》
《UNIX环境高级编程(第2版)》
《Linux系统编程 》

后三本都是难得的经典好书,个人觉得有收藏价值。系统开发和应用开发有所区别,但应用都是建立在系统开发的基础之上的,了解很多内核技术背景十分有必要。
 
第四级:调试

《Windows高级调试》
《Windows用户态程序高效排错》
《软件调试》

除了第一本,其他的看着买吧。

 

第五级:设计

《设计模式 - 可复用面向对象软件的基础》
《重构 - 改善既有代码的设计》

这两本是程序员必备的书,其他的看各自的习惯购买即可。
 工具书我就不列了,也可以不买,看帮助文件就行了。
 说白了,还是自己要耐心,踏踏实实看书,深入挖坟。


 

 

posted @ 2009-12-22 12:55 昉 阅读(24) 评论(0) 编辑

2007年1月25日 #

摘要: 现在潮流兴orm,在博客园关于orm的充满每一个角落。所以我也来赶一赶这个潮流,拿起Nhibernate 就开始百度和google。闲话一下,为什么用NHibernate 呢。不为什么,就是学习ado.net vnext的成本太高(竟然English的VS才可以安装),加上Nhibernate 比较多人研究(神州行:哪家人多我用哪家) ,就一下子决定学习Nhibernate 了。但Nhibernate 就是Nhibernate ,今天研究了一天才搞出个hello world.真累人,在这里就先记录一下,让更多像我一样刚刚学Nhibernate 的人少走弯路。阅读全文
posted @ 2007-01-25 01:08 昉 阅读(4900) 评论(13) 编辑

2007年1月9日 #

摘要: 其实我已经是博客员的常客(做技术的共同点),在半年前已经申请了blog。但由于工作的关系,之前未留下半个字,实在惭愧惭愧。感谢博客园没把我的帐户删掉。半年真的可以发生很多事,但幸亏的是,这半年我也进步了不少。闲话少说。近来需要关注的新技术实在太多,特别是vista和.net 3.0 推出之后。WPF、WCF、AJAX、Ado.net vNext......还有数据分析技术,都是我要重点关注的内容(...阅读全文
posted @ 2007-01-09 16:19 昉 阅读(20) 评论(0) 编辑