忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 23278 | 回复: 12

【译】py2exe Tutorial [复制链接]

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2009-10-14 23:06 |显示全部楼层
http://www.py2exe.org/index.cgi/Tutorial

py2exe 入门指南




                                                                                                      Translated By: openspace
                                                                                                      Date              : 2009-10-14

    py2exe将Python程序转变为可以在其他Windows平台上运行的程序包,而这些机器上不需要安装Python。在运行py2exe的机器上需要安装Python,因为py2exe是一个Python程序,而且它在构建的程序包中会加入Python的部分组件。
    要掌握该入门指南,你需要知道Python的基础知识(可以从python.org的页面getting started获取这些知识)。你还需要知道如何在命令行提示符下运行Python程序(how to run Python programs from the command prompt)。
    要使用py2exe,在完成安装之后需要按照一些简单的步骤来操作:
          1. 创建/测试你的程序
          2. 创建构建脚本(setup.py)
          3. 运行构建脚本
          4. 测试可执行程序
          5. 如果可行的话构建安装程序程序

创建/测试你的程序

    最难的一步往往是第一步。幸运的是,py2exe通常对这一步几乎没有要求。用Python编写的大多数模块都可以和py2exe一起工作。许多模块可以不加修改地与py2exe一起工作,而一些第三方模块则需要一些额外的工作。幸运的是从WorkingWithVariousPackagesAndModules可以获取帮助
    注意在使用py2exe之前必须确保程序可以工作。如果py2exe处理了一个损坏的程序,那么可能在py2exe中有bug需要修复。
    我们使用的第一个例子是我们的老朋友:
  1.         1 print "Hello World!"
复制代码

       hello.py
    我们要确保它可以工作:

  1.         C:\Tutorial>python hello.py
  2.         Hello World!

  3.         C:\Tutorial>
复制代码

       看起来不错!

创建setup脚本(setup.py)

    py2exe用一个新的“命令”扩展了Distutils。如果你安装过第三方Pythong模块,那么你很可能至少见过一个distutils命令:
  1.         C:\Tutorial>python setup.py install
复制代码

        “install”是一个用于安装(Python模块或者包)的Distutils命令。Distutils执行安装的细节信息保存在setup.py中(有时是在其他关联文件中)。
    “py2exe”是一个在import py2exe之后添加的一个新的Distutils命令。要使用py2exe,需要创建一个setup.py文件来告诉Distutils和py2exe你想做什么。这里是一个setup.py实例,它很简单但对于示例程序够用了:

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

       setup.py
    注意到这是普通的Python代码。让我们一行行地走:
        1. 使用py2exe时,我们要直接引用的Distutils部分是setup函数,所以我们只
    需要import它就可以了。
        2. 一旦加载了Distutils,我们需要加载py2exe以便可以添加它的命令。
        3. 空格有利于可读性!
        4. 调用setup并告诉它我们需要一个单一的控制台应用程序,其主入口
    为“hello.py”。

运行setup脚本

     接下来是运行构建脚本。传递给py2exe命令,会看到大量输出:

  1. C:\Tutorial>python setup.py py2exe
  2. running py2exe
  3. *** searching for required modules ***
  4. *** parsing results ***
  5. creating python loader for extension 'zlib'
  6. creating python loader for extension 'unicodedata'
  7. creating python loader for extension 'bz2'
  8. *** finding dlls needed ***
  9. *** create binaries ***
  10. *** byte compile python files ***
  11. byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\bz2.py to bz2.pyc
  12. byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\unicodedata.py to unicodedata.pyc
  13. byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\zlib.py to zlib.pyc
  14. skipping byte-compilation of c:\Python24\lib\StringIO.py to StringIO.pyc

  15. [skipping many lines for brevity]

  16. skipping byte-compilation of c:\Python24\lib\warnings.py to warnings.pyc
  17. *** copy extensions ***
  18. *** copy dlls ***
  19. copying c:\Python24\lib\site-packages\py2exe\run.exe -> C:\Tutorial\dist\hello.exe

  20. *** binary dependencies ***
  21. Your executable(s) also depend on these dlls which are not included,
  22. you may or may not need to distribute them.

  23. Make sure you have the license if you distribute any of them, and
  24. make sure you don't distribute files belonging to the operating system.

  25.    ADVAPI32.dll - C:\WINDOWS\system32\ADVAPI32.dll
  26.    USER32.dll - C:\WINDOWS\system32\USER32.dll
  27.    SHELL32.dll - C:\WINDOWS\system32\SHELL32.dll
  28.    KERNEL32.dll - C:\WINDOWS\system32\KERNEL32.dll

  29. C:\Tutorial>
复制代码

        运行setup脚本时会创建两个目录:build和dist。build目录用作程序打包时的工作区。setup脚本运行完后可以安全的删除build目录。运行应用程序需要dist目录中的文件。如果你正使用Python 2.4或者更新的版本,那么dist中会包含MSVCR71.dll文件 - 这是一个Microsoft动态链接库,你需要确定你是否有发布它的合法权限。
测试可执行程序
    现在程序包已经创建完毕,可以准备测试了:
  1.         
  2. C:\Tutorial>cd dist

  3. C:\Tutorial\dist>hello.exe
  4. Hello World
复制代码

    好极了,它正常工作了!!!
    如果程序在你的机器上工作,但是在用户的机器上不工作,那么用户可能需要安装Microsoft Visual C++ 2008可重新发布包。可以从微软的网站website下载。这种现象通常发生在用户没有安装Python的情况下。

如果可行的话构建安装程序

     py2exe不是一个安装程序构造器 - 它仅仅是将需要运行Python程序的文件组装起来。有许多非常好的安装程序构建器,有些是开源的(例如NSIS),有些是免费的(例如Inno Setup)。

[ 本帖最后由 openspace 于 2009-10-14 23:08 编辑 ]

py2exe入门指南.pdf

70.26 KB, 下载次数: 597

论坛徽章:
0
发表于 2009-10-15 07:49 |显示全部楼层
感謝分享。加精。

论坛徽章:
0
发表于 2009-10-15 18:18 |显示全部楼层
Thanks

论坛徽章:
0
发表于 2009-10-15 18:41 |显示全部楼层
“如果程序在你的机器上工作,但是在用户的机器上不工作,那么用户可能需要安装Microsoft Visual C++ 2008可重新发布包。可以从微软的网站website下载。这种现象通常发生在用户没有安装Python的情况下。”


能否扫下盲
‘可重新发布包’是什么东东?
怎样确保打包的程序在每台机器上都能运行呢?

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2009-10-15 20:16 |显示全部楼层

回复 #4 bleem1998 的帖子

Microsoft Visual C++ 微软发布了Microsoft Visual C++ 2008运行库的分发包,安装该运行库后您的计算机将可以运行Visual C++ 2008编写的程序,即使您并未安装Visual Studio 2008。比起.NET运行库来讲,C++的运行库要小得多,这次发布的版本大小为2-3M。
Visual C++ 2008运行库提供了C、标准C++、ATL、MFC、OpenMP以及MSDIA等类库的运行支持。在支持并行配件的操作系统上,支持并行部署模式的类库(CRT, SCL, ATL, MFC, OpenMP)将会被安装到WinSxS文件夹。


具体什么也不熟悉,个人理解是一些系统不自带的库组成的一个包
安装它类似于添加新的库

论坛徽章:
0
发表于 2009-10-15 20:27 |显示全部楼层
真麻烦
希望不要遇到这种情况就好

BTW
翻译的很流畅
支持一个

论坛徽章:
0
发表于 2009-10-15 21:49 |显示全部楼层
不要使用py2exe for python2.6的,2.6版本的需要安装VC++2008可发行包,2.5版本的不需要。

就是因为这个原因,我将我机器的python版本降到2.5了。

http://blog.solrex.cn/articles/py2exe-for-python-26-sucks.html

论坛徽章:
0
发表于 2009-10-15 21:56 |显示全部楼层
我觉得应该有其他解决办法吧?
不然谁还敢用VS2008啊
搞的跟.NET似的
VC写的程序还要装运行库

论坛徽章:
0
发表于 2009-10-16 10:54 |显示全部楼层
支持,感谢

论坛徽章:
0
发表于 2011-01-01 02:43 |显示全部楼层
支持一下, 不错的教程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP