如何将写好的.py/.java程序变成.exe文件详解
作者:等黄昏等你来 发布时间:2022-04-06 09:22:14
一、背景
1.1、前言
当我们写好代码并测试功能符合要求时,有可能每天都要执行这个程序(比如我写了一个爬虫脚本,每天定时运行获取我想看的小说更新内容),那么每次执行程序都要打开编辑器或者命令行吗?或者,我写了个程序能实现某某某炫酷的功能,和喜欢的女孩子表白炫耀/和兄弟炫耀分享,难道要发一大串源代码过去让他们在执行一次吗?
那当然不行,一种很好的解决办法就是,把这个程序变成可执行(.exe)文件,点击即执行,岂不是非常方便。
1.2、说明
操作系统:win 10
编辑器:pycharm edu
语言及版本:python 3.10
需要的库:pyinstaller
实现思路:使用Python的第三库,进行生成可执行文件(.exe)
对pyinstaller使用参数介绍:
-F,作用:生成单个可执行文件
-c,作用:指定使用命令行窗口运行程序
-w,作用:指定程序运行时不显示命令行窗口
-i,作用:添加可执行文件的图标(-i 图片路径)
-n,作用:可执行文件生成后的名称
示例,生成一个可执行文件,设置文件图标,生成后的名称为派大星.exe,执行程序不显示命令行窗口,那么执行的指令应该为:
pyinstaller -F -w -i 图片路径 -n 派大星 程序文件.py
二、优点与缺点分析
2.1、优点
1)点开即运行,方便
2)生成.exe文件中遇到各种问题能解决的话,可以增长一些知识
2.2、缺点
1)生成的过程容易遇到各种报错
2)生成的.exe文件占用空间大(因为打包了很多无关的库)
三、将.py变成.exe步骤
3.1、下载需要的库
1)pycharm内下载,步骤如下图1、2所示:
图1
图2
点击下载之后,进行等待即可,网络快的话20秒可以下载完成,慢一些可能需要几分钟。
2)也可以在pycharm的控制台下载,如下图3所示:
图3
3)在命令行下载所需的库
步骤如下图4、5、6:
win+R输入内容cmd打开命令行:
图4
输入:pip install pyinstaller
图5
结果:
图6
3.2、pycharm控制台.py->.exe文件
步骤如下图7、8、9:
1)要把路径切换到需要生成.exe文件的位置并输入指令(installer -F -w 文件名.py),如下图7:
图7
2)开始生成.exe文件,如下图8:
图8
3)成功生成.exe文件,如下图9:
图9
4)查看生成的.exe文件
如下图10、图11:
图10
生成的.exe文件在dist目录中,.spec文件是生产过程文件;
图11
5)运行程序
运行程序之后会弹出一个命令行的框,程序成功执行之后,框就会消失;
比如,我这里生成的.exe程序,就是一个邮件发送,运行完成后结果如下图12:
图12
3.3、命令行.py->.exe文件
1)win+R输入内容cmd打开命令行:
图12
2)在命令行输入生成指令
过程如下图13、图14:
图13
图14
3)查看生成文件
如下图15、图16:
图15
图16
4)运行
运行时,会弹出命令行显示结果,我这里结果正常,只是简单的输出内容,就不展示了。
四、.py->.exe->执行.exe可能会遇到的报错与解决办法
4.1、''pyinstaller'' 不是内部或外部命令,也不是可运行的程序或批处理文件。
背景:在要生成.exe文件的目录下打开了命令行输入生成指令,但是报这个错
解决办法:
1)在要生成.exe文件的目录打开cmd,查看是否存在pyinstaller->pip list(当出现了这个报错,大概率是不存在的),若不存在则下载->pip install pyinstaller,继续执行之前遇到报错的指令即可。
以上问题是我遇到并成功解决的,之后遇到其它问题在进行补充。
五、.exe->.py文件
说明:这里有一个前提,就是这个.exe文件一定要是.py文件生成的,不然会出什么错我也不清楚
他人分享内容如下:点这里
或者直接搜索:查看.py生成的.exe代码也可
六、将.java->.exe
虽然学过java,但很长时间没用了,故借鉴他人分享内容,进行记录,方便以后查看,这是文章地址:.java->.exe
https://www.jb51.net/article/273059.htm
来源:https://blog.csdn.net/qq_57663276/article/details/128676353


猜你喜欢
- 最近做了一个文件上传、下载、与在线打开文件的功能,刚开始对文件上传的界面中含有其它表单(例如输入框、密码等)在上传的过程中遇到了许多问题,下
- 数据校验在web应用里是非常重要的功能,尤其是在表单输入中。在这里采用Hibernate-Vapdator进行校验,该方法实现了JSR-30
- 在android 中可以广泛看到的template<typename T> class Sp 句柄类实际上是android 为实
- Join子句一、简介使用join子句可以将来自不同源序列并且在对象模型中没有直接关系的元素相关联,唯一的要求是每个源中的元素需要共享某个可以
- 本文实例讲述了C#显示文件夹下所有图片文件的方法。分享给大家供大家参考。具体实现方法如下:<%@ Page Language=&quo
- 走马灯是一种常见的效果,本文讲一下如何用 PageView 在 Flutter 里实现一个走马灯, 效果如下,当前页面的高度比其它页面高,切
- Android webview在默认情况下是不支持网页中的文件上传功能的;如果在网页中有<input type="file&
- 本文实例为大家分享了Android拼图小游戏的具体代码,供大家参考,具体内容如下1、效果图:运行时:结束时:2、PuzzleLayoutVi
- 本文实例讲述了JAVA中的final关键字用法。分享给大家供大家参考,具体如下:根据上下文环境,java的关键字final也存在着细微的区别
- 数组分页查询出全部数据,然后再list中截取需要的部分。mybatis接口List<Student> queryStudents
- 我就废话不多说了,大家还是直接看代码吧~//执行的是删除信息的操作 String a=request.getParameter("
- 1.雪崩效应 雪崩效应如上图所示,假设我们有3个微服务A,B,C,A调用B,B调用C,如果C挂掉了,由于B是同步调用,不断等待,导致资源耗尽
- maven的配置文件settings.xml存在于两个地方:1.安装的地方:${M2_HOME}/conf/settings.xml2.用户
- Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~:使
- 引言:在Object基类中,有一个方法叫clone,产生一个前期对象的克隆,克隆对象是原对象的拷贝,由于引用类型的存在,有深克隆和浅克隆之分
- OSS.Http项目对于.Net Standard标准库的支持已经迁移完毕,OSS开源系列两个最底层的类库已经具备跨运行时支持的能力。由于O
- 本文实例讲述了C#实现为一张大尺寸图片创建缩略图的方法。分享给大家供大家参考。具体实现方法如下:public static Bitmap C
- 说到事件机制,可能脑海中最先浮现的就是日常使用的各种 listener,listener去监听事件源,如果被监听的事件有变化就会通知list
- 中国科学院开源协会镜像站地址:IPV4/IPV6: http://mirrors.opencas.cn 端口:80IPV4/IPV6: ht
- 背景:最近项目中涉及到自定义线程池中子线程获取父线程的traceId,这个数据的传递过程可以用lamdba表达式进行封装实现的。这让我想到s