python文件转为exe文件的方法及用法详解


Posted in Python onJuly 08, 2019

一、简介

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被建造,你不需要它们的话你可以简单的删除它们。

总结

以上所述是小编给大家介绍的python文件转为exe文件的方法及用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 测试实现方法
Dec 24 Python
python实现识别相似图片小结
Feb 22 Python
python实现简易通讯录修改版
Mar 13 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
关于python3中setup.py小概念解析
Aug 22 Python
python命令 -u参数用法解析
Oct 24 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
Python实现括号匹配方法详解
Feb 10 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 Python
简单了解python代码优化小技巧
Jul 08 #Python
python实现在函数图像上添加文字和标注的方法
Jul 08 #Python
python画图——实现在图上标注上具体数值的方法
Jul 08 #Python
简单了解python的break、continue、pass
Jul 08 #Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 #Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 #Python
python如何实现异步调用函数执行
Jul 08 #Python
You might like
如何使用PHP往windows中添加用户
2006/12/06 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
js中style.display=""无效的解决方法
2014/10/30 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
python实现连接mongodb的方法
2015/05/08 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python学习必备知识汇总
2017/09/08 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
python 不以科学计数法输出的方法
2018/07/16 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
茶叶生产计划书
2014/01/10 职场文书
法定代表人证明书
2014/11/28 职场文书
安全第一课观后感
2015/06/18 职场文书