用Py2exe打包Python脚本简单介绍

简介: 一、简述      Py2exe,从这个名字上就可以理解,把Python脚本转换为windows平台上面可以运行的可执行程序(*.exe)的工具。经过转换后,你可以不 用安装Python的执行环境就可以直接执行转换后的exe了。

一、简述
      Py2exe,从这个名字上就可以理解,把Python脚本转换为windows平台上面可以运行的可执行程序(*.exe)的工具。经过转换后,你可以不

用安装Python的执行环境就可以直接执行转换后的exe了。Py2exe本身是开源的。


二、安装
      根据你本地安装的python的版本来选择要安装的Py2exe版本,一个比较好的下载地址:http://sourceforge.net/projects/py2exe/files/,如果这个地址访问不了,我在csdn上放了一个针对python2.5的Py2exe安装包,可以去下载:http://d.download.csdn.net/down/2793052/magictong

 

三、使用

      看一个简单的例子:先写一个简单的脚本,文件名:HelloPy2exe.py

 

[python]  view plain copy
 
  1. #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. # Created By MagicTong 2010-11-01 13:01  
  4.   
  5. def main():  
  6.     print "Hello, Py2exe! "  
  7.   
  8. if __name__ == "__main__":  
  9.     main()  
  10.     raw_input("Enter enter key to exit...")  

 

      然后写一个编译脚本,文件名:setup_py2exe.py

 

[python]  view plain copy
 
  1. from distutils.core import setup  
  2. import py2exe  
  3.   
  4. setup(console=["HelloPy2exe.py"])  

 

      最后整个批处理,文件名:buildExe.bat

 

[python]  view plain copy
 
  1. python setup_py2exe.py py2exe  
  2. pause  

 

 

      运行这个批处理后,会在当前目录生成两个文件夹:build和dist,build里面的是一些中间文件可以不用理会了,dist里面会产生下面一些文件:bz2.pyd,HelloPy2exe.exe,library.zip,MSVCR71.dll,python25.dll,unicodedata.pyd,w9xpopen.exe,这时你可以在一台没有安装python环境的机器上运行HelloPy2exe.exe了:

     

四、发布

      dist里面的所有文件都需要发布的,但是如果你不需要兼容win9系列,那可以不带上w9xpopen.exe,其实你直接运行下w9xpopen.exe会提示:

 

五、Py2exe支持的参数(通过python setup_py2exe.py py2exe --help 可以打印出来,但是这些参数我也没用过,有空再摸索摸索)

 

[python]  view plain copy
 
  1. Global options:  
  2.   --verbose (-v)  run verbosely (default)  
  3.   --quiet (-q)    run quietly (turns verbosity off)  
  4.   --dry-run (-n)  don't actually do anything  
  5.   --help (-h)     show detailed help message  
  6.   
  7. Options for 'py2exe' command:  
  8.   --optimize (-O)       optimization level: -O1 for "python -O", -O2 for  
  9.                         "python -OO", and -O0 to disable [default: -O0]  
  10.   --dist-dir (-d)       directory to put final built distributions in (default  
  11.                         is dist)  
  12.   --excludes (-e)       comma-separated list of modules to exclude  
  13.   --dll-excludes        comma-separated list of DLLs to exclude  
  14.   --ignores             comma-separated list of modules to ignore if they are  
  15.                         not found  
  16.   --includes (-i)       comma-separated list of modules to include  
  17.   --packages (-p)       comma-separated list of packages to include  
  18.   --compressed (-c)     create a compressed zipfile  
  19.   --xref (-x)           create and show a module cross reference  
  20.   --bundle-files (-b)   bundle dlls in the zipfile or the exe. Valid levels  
  21.                         are 1, 2, or 3 (default)  
  22.   --skip-archive        do not place Python bytecode files in an archive, put  
  23.                         them directly in the file system  
  24.   --ascii (-a)          do not automatically include encodings and codecs  
  25.   --custom-boot-script  Python file that will be run when setting up the  
  26.                         runtime environment  
  27.   
  28. usage: setup_py2exe.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]  
  29.    or: setup_py2exe.py --help [cmd1 cmd2 ...]  
  30.    or: setup_py2exe.py --help-commands  
  31.    or: setup_py2exe.py cmd --help  

 

 

六、高级,其实也不高级

      看那个编译脚本中的这句:setup(console=["HelloPy2exe.py"]),setup还支持很多参数,windows(一个windows界面程序),data_filse(打包其他的文件)……以后再说说。

      看一个例子先:

 

[python]  view plain copy
 
  1. # -*- coding: cp936 -*-  
  2. from distutils.core import setup  
  3. import py2exe  
  4.   
  5. includes = ["encodings", "encodings.*"]  
  6.   
  7. options = {"py2exe":    
  8.             {"compressed": 1, #压缩    
  9.              "optimize": 2,    
  10.              "ascii": 1,    
  11.              "includes":includes,    
  12.              "bundle_files": #所有文件打包成一个exe文件  
  13.             }}  
  14. setup(  
  15.     options=options,    
  16.     zipfile=None,  
  17.     console=[{"script": "HelloPy2exe.py", "icon_resources": [(1, "pc.ico")]}],  
  18.     windows=[{"script": "HelloWin.py", "icon_resources": [(1, "pc.ico")]}],  
  19.     data_files=[("magic",["App_x86.exe",]),],  
  20.     version = "2010.11.01.01",   
  21.     description = "this is a py2exe test",   
  22.     name = "HelloGuys.",   
  23. )  

 

      options可以用来指定一些编译的参数,譬如是否压缩,是否打包为一个文件,data_files是一个打包时的拷贝文件列表,格式如下:data_files=[("目的文件夹",["文件名",]), ("目的文件夹",["文件名",]), ("目的文件夹",["文件名",]),],至于version,description,name等等,你们懂的,icon_resources是指定一个ico图标作为程序的图标。从这里也可以看出windows,console等参数是可以指定一个list来设置参数的。可以去Python安装目录/Lib/site-packages/py2exe/samples下看一些例子,这玩意还可以打包服务程序,com服务器程序等等。

      王道:http://www.py2exe.org/

 

[end]

技术改变世界! --狂诗绝剑
目录
相关文章
|
25天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
143 61
|
2天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
1月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
107 7
21个Python脚本自动执行日常任务(2)
|
1月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
127 5
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
70 7
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
2月前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
151 2
|
2月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
129 3

热门文章

最新文章