用pyinstaller打包多个py文件转成exe格式

用pyinstaller打包多个py文件转成exe格式

用pyinstaller打包多个py文件转成exe格式

响应国家号召2019-Ncov 在家闲来无聊,学写一个飞船攻打外星人的python程序,并打包成exe。综合了几个博客成功将自己写的python 文件转成exe。

首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行.打包后的程序不依赖客户端是否安装python。

  1. 用Pycharm 安装Pyinstaller 和pywin32.
    File->Settings->Project Interpreter.点击右侧+号,在“Available Package”中搜索"Pyinstaller"可安装版本,然后点击“Install Package”按钮。(极力推荐大家安装Pycharm IDE 编写调试代码,非常好用)
    在这里插入图片描述
  2. 安装完Pyinstaller后,按照相同方法安装Pywin32.
    在这里插入图片描述
    3.找到pyinstaller.exe 的安装目录
    在这里插入图片描述
  3. 按照https://blog.csdn.net/weixin_43502949/article/details/101057825方法生成一个原始的spec文件。
    在pyinstaller目录下,命令行输入pyi-makespec alien_invasion.py
    alien_invasion.py.py为Python程序的入口py文件,根据自身项目情况修改
    将在当前文件夹下生成了一个alien_invasion.spec文件
    在这里插入图片描述
  4. 打开SPEC 文件,修改如下

在这里插入图片描述
6. 执行下面的命令行(这里绝对路径是通过拖拽文件自动获取的,其实可以用相对路径)
E:\Python_PyCharm37\venv\Scripts*pyinstaller.
exe
* -D E:\Python_PyCharm37\alien_invasion*alien_invasion.spec*
在这里插入图片描述
6。pyinstaller会在当前目录下生成两个文件build 和dist。最终的打包程序exe放在dist下面。双击exe执行。
在这里插入图片描述
7. 一开始我的exe程序每次都能生成,但是执行时总是异常。后来浏览了其他博主的经验发现是程序里面Font用了None的地方(None的话就采用系统默认GBK格式,有些字符将识别不了),修改为某一种特定的字体就好。
pygame游戏的py文件运行好好的,打包成exe文件就会闪退,并且不给出报错信息。经排查,是字体的问题:
font = pygame.font.SysFont(‘None’,40)
上式不会在py文件运行中出现问题,但是exe文件就会导致崩溃。所以需要更换成系统自带的字体,比如 Arial 或Tahoma:
font = pygame.font.SysFont(‘Tahoma’,40)

8.最终的效果为
在这里插入图片描述
————————————————
附录:pyinstaller 命令行参数释义
pyinstaller -F demo.py
参数 含义
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库。
-i 改变生成程序的icon图标

参考链接:

  1. https://www.jianshu.com/p/5a59b6985346
  2. https://blog.csdn.net/yu3235119310/article/details/102878480
  3. https://blog.csdn.net/weixin_43502949/article/details/101057825
    如有侵权,请连接我删除。这里只是个人学些笔记,供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值