免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5210 | 回复: 8
打印 上一主题 下一主题

转贴一个py2exe的使用方法,希望能给大家帮助。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-09 09:18 |只看该作者 |倒序浏览
下面是全文转载,不过修改了几个错别字。


py2exe 網址:
http://starship.python.net/crew/theller/py2exe/

py2exe 能夠把 Python script 轉換成在 windows 上獨立執行(即不需額外安裝 Python)的 exe 檔(加上其它必須的執行期函式庫)。對於不考虑跨平台的發佈來說,非常方便。

使用方式:
假設目前有一 Python script 名為 "hello.py",透過一個 setup.py 的 script 來產生執行檔:

  1. from distutils.core import setup
  2. import py2exe
  3. setup(console=["hello.py"])
复制代码




將 setup(console=["..."]) 中的檔名替換為要產生 exe 的 script 檔名.然後在 command line 下執行此 script:

  1. setup.py py2exe
复制代码




之後會產生一 dist 目錄在目前目錄中,此目錄即包含該執行檔及其它必須檔案,必須全部一起發佈.

上述 setup.py 中指定產生一個 console 程式,若要產生一個有 console 視窗的程式,將 "console" 替換成 "windows":

  1. setup(windows=["hello.py"])

复制代码



若要一次產生多個執行檔,只要將多個 script 檔名以 list 方式傳給 setup() 即可:

  1. setup(console=["hello.py", "hello1.py", "hello2.py"])
复制代码




亦可以同時產生 console 和 windows 程式:

  1. setup(console=["hello.py", "hello1.py"], windows=["hello2.py"])
复制代码




應用程式有時會使用到一些外部檔案,例如設定檔,字型或是圖檔,透過 setup() 的 data_files 參數,可以將這些額外的檔案加入發佈目錄中。將一個或多個 (目的目錄, [來源檔 1, 來源檔 2...來源檔 n]) 形成的 tuple,包裝成 list 指派給 data_files參數即可:

  1. setup(console=["hello.py", "hello1.py"], windows=["hello2.py"],
  2.      data_files=[("img",
  3.                   [r"d:\documents\matrix.jpg",
  4.                    r"d:\documents\Batman.jpg"]),
  5.                  ("xml",
  6.                   [r"D:\tmp\mypaint.xml",
  7.                    r"D:\tmp\mypuzzle.xml",
  8.                    r"D:\tmp\mypuzzle1.xml"])])
复制代码




產生之後的 dist 目錄中,應該會有一 img 目錄,內含 matrix.jpg 和 batman.jpg 兩個檔案,以及 xml 目錄,內含三個 xml 檔案。

另外 py2exe 還提供了包裝成 windows service 和 COM server 的功能,由於目前有用到所以有研究。另外 Python 的 GUI toolkit - Tkinter 亦可正常使用,只是包裝後會多出 2MB 多的 Tkinter runtime,讓程式瞬間增肥許多...但,誰管這麼多呢?能夠讓別人也用用自己寫的 Python 程式,肥一點也無所謂囉!  

以上是我參考 py2exe 官方網頁, Using py2exe 小節所寫的筆記,各位 Python 同好請慢用~

论坛徽章:
0
2 [报告]
发表于 2005-09-20 13:50 |只看该作者

转贴一个py2exe的使用方法,希望能给大家帮助。

感觉好烦琐的样子,有没有更方便的发布办法呢

论坛徽章:
0
3 [报告]
发表于 2005-09-20 14:31 |只看该作者

转贴一个py2exe的使用方法,希望能给大家帮助。

你感觉到烦琐,可能是因为我写得过于细致了。

论坛徽章:
0
4 [报告]
发表于 2005-09-20 15:18 |只看该作者

转贴一个py2exe的使用方法,希望能给大家帮助。

动手实际试一试吧

论坛徽章:
0
5 [报告]
发表于 2006-07-28 19:49 |只看该作者
py2exe生成的exe,
是否是伪exe, 实际还是由python解释执行的呢?

论坛徽章:
0
6 [报告]
发表于 2006-07-30 19:29 |只看该作者
原帖由 飞灰橙 于 2006-7-28 21:49 发表
py2exe生成的exe,
是否是伪exe, 实际还是由python解释执行的呢?

半真半伪。

和真正的exe相比,py2exe把需要用到的打了包,连解释器都含在里面。实际还是解释运行,速度没有提高。

和JAVA相比,py2exe出来的exe不需要你在运行的机器上再安装类似JRM虚拟机这样的东西(python解释器)。只要打包后的文件是在一起的,就可以直接运行。

论坛徽章:
0
7 [报告]
发表于 2006-07-31 10:24 |只看该作者
原帖由 OneZ 于 2006-7-30 19:29 发表

半真半伪。

和真正的exe相比,py2exe把需要用到的打了包,连解释器都含在里面。实际还是解释运行,速度没有提高。

和JAVA相比,py2exe出来的exe不需要你在运行的机器上再安装类似JRM虚拟机这样的东西(pyt ...


如果有真正的编译程序就好了。

很多解释语言都有类似eval的功能,动态的生成代码,
这个用编译程序有机会实现吗?

论坛徽章:
0
8 [报告]
发表于 2006-08-01 11:34 |只看该作者
应当可以用eval的,python中有,py2exe中似乎也没特意指明不能用eval

论坛徽章:
0
9 [报告]
发表于 2006-08-01 17:51 |只看该作者
原帖由 lzhome 于 2006-8-1 11:34 发表
应当可以用eval的,python中有,py2exe中似乎也没特意指明不能用eval


因为还是解释执行的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP