在python中比较常用的python转exe方法有三种,分别是cx_freeze py2exe PyInstaller。两种似乎对python3的支持不好,操作也没cx_freeze简单,所以选择cx_freeze来打包python程序。
一、pyinstaller打包方法
安装Pyinstaller
1、安装pywin32
win+R打开cmd
使用pip命令安装:pip install pywin32
2、安装Pyinstaller
win+R打开cmd
使用pip命令安装:pip install PyInstaller
使用Pyinstaller
win+R打开cmd窗口,把路径切换到文件所在路径(文件随便放在哪里都行)打开命令提示行,输入以下内容(最后的是文件名):
pyinstaller -F -w main.py -p xxx.py -p xxx.py
备注:pyinstaller -F -w 程序入口文件 -p 程序文件 -p 程序文件
最后将pygame需要的资源如图片音乐等文件与exe放在同一目录下,运行exe;
上面这个办法有没有用呢?能不能成功打包呢?当然是可以的,但是你会碰到百度里面搜索出来的所有问题,
使用pyinstaller打包后,运行exe就会提示错误,“failed to execute script main”。但是代码本地调是没有问题;
重点是照着做根本解决不了,本人耗时一上午,各种办法用尽,没有任何作用,最后只能转投cx_freeze;
二、cx_freeze打包方法
1、安装
pip install cx_freeze
2、cmd命令行进入python文件夹下scripts文件夹
C:\Users\fz\AppData\Local\Programs\Python\Python36\Scripts
输入以下命令会在python的scripts文件夹下生成cxfreeze.bat
python cxfreeze-postinstall
3、然后检查是否安装好,在命令行输入:
cxfreeze -h
如果scripts文件夹下生成了cxfreeze.bat文件还不正常显示,则可以用记事本创建一个名为cxfreeze.bat文件,编辑好其中的对应路径:
C:\Users\fz\AppData\Local\Programs\Python\Python36\Scripts
@ echo off
"C:\Users\fz\AppData\Local\Programs\Python\Python36\python.exe" "C:\Users\fz\AppData\Local\Programs\Python\Python36\Scripts\cxfreeze" %*
G:\plane>cxfreeze main.py --target-dir dist
上面我的是简便输入方法,dist是文件夹名称
main.py 要打包的主文件
–target-dir 是打包后的程序路径
–target-name 是打包后的程序名
–include-modules 是要包含的模块或库
–icon 是打包后的程序图标。
打包后的文件夹样式,讲需要的图片、声音、字体都放到该文件夹即可,亲测 桌面等环境均可使用;