如何将写好的.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
猜你喜欢
- 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,
- 本文实例为大家分享了Java实现简单酒店管理系统的具体代码,供大家参考,具体内容如下为某个酒店编写程序:酒店管理系统,模拟订房、退房和打印所
- 因为公司现在换成了nacos,所以自己写了demo学习一下。结果第一步就走不下去。在使用nacos-config读取nacos配置时。发现b
- 目录概述LRU 的原理LRU 算法的实现LRU 算法描述LRU 算法代码实现方法一方法二方法三总结概述LRU 算法全称为 Least Rec
- 官网教程一、翻转(镜像)头文件 quick_opencv.h:声明类与公共函数#pragma once#include <opencv
- 一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字按惯例 先上图:class MyBody extends StatefulWid
- 利用闲余时间想自己搭建一个springboo
- 寻找到application.yml的读取的操作。从spring.factories 中查看到# Application Listeners
- 插入排序原理①把所有元素分成已排序和未排序两组②找到未排序组的第一个元素,向已经排序的组中进行插入③倒序遍历已经排好的元素,依次和待插入的元
- 1、研究背景 在当今信息社会发展中中,计算机科
- 问题项目是springcloud项目,在maven install某一个项目时报错:程序包com.example.commons.appli
- 在 Spring 容器中,两个 Bean 之间除了通过 <ref> 建立依赖关系外,还存在着一些特殊关系。1 继承在
- 一、实现对ScrollViewer样式的自定义主要包括:1、滚动条宽度设置2、滚动条颜色3、滚动条圆角4、滚动条拉动时的效果mouseove
- 当前使用的IDEA版本是2020.1。随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐。以下列举的,都
- ApplicationContext简述ApplicationContext代表IOC容器,在SpringIOC容器中读取Bean配置创建B
- 1. 前言老板说,明天甲方要来看产品,你得造点数据,而且数据必须是“真”的,演示效果要好看一些,这样他才会买我们的产品,我好明年给你换个嫂子
- AbstractDetectingUrlHandlerMapping是通过扫描方式注册Handler,收到请求时由Abstrac
- 又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了)。这次我们来谈一谈Java里的一个很有意思的东西——回调。什么叫回
- 自定义 webflux 容器配置配置代码@Componentpublic class ContainerConfig extends Rea
- 概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义定义一个用于创建对象的接口,让其子类去决定实例化那个类使用