使用Py2Exe for Python3创建自己的exe程序示例

作者:阿智智 时间:2021-12-25 21:21:10 

最近使用Python 3.5写了一个GUI小程序,于是想将该写好的程序发布成一个exe文件,供自己单独使用。至于通过安装的方式使用该程序,我没有探索,感兴趣的读者可以自己摸索。

1 介绍

我使用的开发环境是python3.4(实际上我是在另一个64位的台式机上,用python3.5开发的,不过代码不用任何修改即可在python3.4上运行),该环境由Anaconda提供。我开发的小GUI软件为mergeDocGui,该程序功能完备,调试通过,等待转成直接使用的exe程序,以在Windows操作系统下使用。它所提供的功能也是与Windows操作系统紧密联系在一起的。

1.1 Py2Exe介绍及其安装

py2exe for Python3 是一个distutils扩展,可以用来创建python3程序的Windows下的可执行程序(32-bit 和 64-bit);它只能支持Python3.3及以后的版本。用它可以创建命令行下的可执行程序、Windows GUI可执行程序、Windows服务和DLL/EXE COM服务器等。

由于Python3的C运行时库,使得我们在利用Py2Exe创建Python3的可执行程序时,不用写manifest文件。

我发现使用Py2Exe正好符合需求。

软件mergeDocGui是在Python3环境下编写的,因此只能安装针对Python3的Py2Exe。Anaconda套件默认没有安装Py2Exe,需要我们手动安装Py2Exe。在Anaconda环境中的Python3中安装Py2Exe使用如下命令即可:

使用Py2Exe for Python3创建自己的exe程序示例

安装成功后,你可使用如下命令,看是否安装成功:

使用Py2Exe for Python3创建自己的exe程序示例

2 创建exe方法

除了常用的创建setup.py方法外,Py2Exe还提供了一个命令行下的工具build_exe,让你不费力地直接创建exe文件。

因为我的程序主要为一个mergeDocGui.py文件,所有使用build_exe即可。根据Py2Exe for Python3提供的build_exe使用帮助,或者你自己通过命令build_exe -h查看帮助,我使用如下命令创建自己的exe文件:

使用Py2Exe for Python3创建自己的exe程序示例

当然,首先要保证Python程序在当前文件夹中。在上图中我们可以看出创建exe文件失败。选项-b表示bundle文件的级别,具体含义请参见帮助。失败原因说的很清楚,需要最小的级别为2,于是我调整bundle文件的级别为2:

使用Py2Exe for Python3创建自己的exe程序示例

我们发现创建成功。立刻在当前文件夹下找到dist文件夹,里面内容如下:

使用Py2Exe for Python3创建自己的exe程序示例

我亟不可待的运行mergeDocGui.exe程序,发现一个不太好的地方,就是总是会带出来一个console背景,如下:

使用Py2Exe for Python3创建自己的exe程序示例

为了解决上述问题,我参阅了py2exe 0.9.2.0的帮助文档。我采用了通常的先编写setup.py脚本的方法:


from distutils.core import setup
import py2exe

setup(windows=['mergeDocGui.py'])

然后再在当前目录下输入一下命令:

使用Py2Exe for Python3创建自己的exe程序示例

最后,我打开dist文件夹中的mergeDocGui.exe,发现附带的console窗口已经消失了。

至于通过build_exe命令如何让console窗口消失,等我闲暇的时候再来探索。

3 总结

本文谈论了py2Exe在python3环境中的安装方法,和如何将自己编写的Gui程序(通过tkinter)转换成可在Windows环境下运行的exe程序。这为非程序员使用程序提供极大的便利。至于程序员,由于是程序员吗,直接面向代码就可以了。

来源:https://blog.csdn.net/RobertChenGuangzhi/article/details/53572205

标签:Py2Exe,Python3,exe
0
投稿

猜你喜欢

  • 将设计执行到底—记Qzone项目组视觉设计标注的前前后后

    2009-04-19 13:22:00
  • python str字符串转uuid实例

    2021-12-31 20:15:54
  • ASP使用xmlhttp调用WEBSERVICE文档

    2008-05-30 13:56:00
  • python代码如何实现余弦相似性计算

    2021-08-15 03:40:04
  • python实现图片转换成素描和漫画格式

    2023-09-20 14:44:25
  • 将SQL Server中所有表的列信息显示出来

    2009-01-08 16:27:00
  • python3使用腾讯企业邮箱发送邮件的实例

    2023-09-29 14:31:05
  • js更好地截取字符串

    2008-03-11 19:00:00
  • Python 下载及安装详细步骤

    2021-05-17 05:24:24
  • 跟老齐学Python之不要红头文件(2)

    2023-12-21 23:22:14
  • Python format字符串格式化函数的使用

    2023-12-20 12:45:59
  • PDO::getAvailableDrivers讲解

    2023-06-08 22:24:20
  • js鼠标滑过图片震动特效的方法

    2023-08-23 21:38:50
  • SQL Server小知识:Processor Affinity

    2008-11-24 20:50:00
  • 如何动态添加Form项?

    2009-11-18 20:44:00
  • Python爬虫之获取心知天气API实时天气数据并弹窗提醒

    2023-04-17 14:40:58
  • HTML编写小经验

    2011-06-14 09:43:14
  • 我的快递一个月没动静于是赶紧上线python快递查询系统

    2021-04-06 23:49:01
  • PyTorch中的CUDA的操作方法

    2022-02-24 18:54:41
  • 框架布局慎用元素

    2008-12-21 16:33:00
  • asp之家 网络编程 m.aspxhome.com