一、简介

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的用法

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

mysetup.py示例如下:

# mysetup.py

from distutils.core import setup

import py2exe

setup(console=["myscript.py"])

然后按下面的方法运行mysetup.py:

python mysetup.py py2exe

上面的命令执行后将产生一个名为dist的子目录,其中包含了myscript.exe,python24.dll,library.zip这些文件。

如果你的myscript.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创建了一个控制台的myscript.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["myscript.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=["myscript.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.py

from distutils.core import setup

import py2exe

setup(com_server=["win32com.server.interp"])

默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

py2exe打包python_Python使用py2exe打包程序介绍相关推荐

  1. py2exe打包python_Python打包-py2exe使用

    以下程序执行的结果是将hello.py程序打包成hello.exe可执行文件 第一步,编写hellp.py: #-*_coding:utf-8-*- import Tkinter from Tkint ...

  2. py2exe支持python37_通过py2exe打包python程序的过程中,解决的一系列问题

    py2exe的使用方法参考<py2exe使用方法>. 注:程序可以在解释器中正常运行,一切问题都出在打包过程中. 问题1: 现象:RuntimeError: maximum recursi ...

  3. python 程序打包成exe py2exe

    python 程序运行需要特定的python环境,如何直接打包成windows直接运行的程序,不依赖特定的python环境呢? 使用py2exe 1.py2exe 的安装 直接使用pip instal ...

  4. pythonexe32位-如何使用pyinstaller打包32位的exe程序

    说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...

  5. 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    [声明]这篇文章可能写的很差,作者技术不够.但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 [首言]exe是电脑上直接点击就可以使用的.当你写了一个.py文件,可以实现你的有趣 ...

  6. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google ...

  7. linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?

    版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! https://blog.csdn.net ...

  8. Qt发布安装程序(打包依赖库+生成安装程序)

    目录 打包Qt依赖库 打包其它依赖库 生成安装程序 下载并安装Inno Setup 5 使用Inno Setup 5 Qt编译好的项目是不能直接被双击运行的,如下所示. 缺少了依赖的库,需要添加进去. ...

  9. DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...

    先说废话 很多朋友对我写的这个系列的第五篇比较感兴趣:http://www.cnblogs.com/liulun/archive/2011/12/08/2280110.html 因为我承诺第五篇就公布 ...

最新文章

  1. Java Excel表格数据的导入导出
  2. 孔子绝粮于陈蔡子贡孔子问答节选(白话)
  3. Centos7.0-安装docker
  4. 推荐两本移动开发挺火的书
  5. 图解Java常用数据结构
  6. linux中断机制--理解中断上半部/下半部、软中断、tasklet、工作队列(可调度、可睡眠)
  7. 容我说下windows linux macosx
  8. 快速提取PPT文件里面的视频、音频素材
  9. poi导出excel写入公式_poi导出excel公式
  10. 数据管理:业务数据清洗,落地实现方案
  11. ROVIO WowWee 路威小车
  12. 关于网络小说均订的那些事:有些已成历史,有些在不断打破纪录
  13. 防止backspace键后退网页
  14. [BZOJ1061][NOI2008]志愿者招募(费用流神题单纯形裸题)
  15. 第九届蓝桥杯大赛软件类国赛
  16. 修改MAC密码 Navicat每次打开都要输入密码
  17. 大型医院 HIS源码
  18. 数据结构c语言课程设计报告,(数据结构c语言课程设计报告.doc
  19. BPF和Go:在Linux中内省的现代方式[译]
  20. AE基础教程第一阶段——07 区域显示,透明网格

热门文章

  1. 数据库范式判定(1NF 2NF 3NF BCNF 区别)
  2. 史秀峰计算机网络技术与应用第二版,史秀峰版《计算机网络技术与应用》期中测试(试题)...
  3. 基于FPGA的PCIE设计(3)
  4. 文献管理软件-Mendeley
  5. 盘点Ubuntu18.04在python=2.7下安装Lasagne==0.2.dev1和Theano
  6. 幽默感七个技巧_每天学点幽默口才:怎样培养说话的幽默感
  7. 计算机内存1tb,手机领先电脑 内存1TB够不够用?
  8. Java刷漆问题代码,@不负代码不负漆
  9. Linux PWM驱动框架 (二)
  10. 我国区域大数据产业规划布局研究