python脚本在没有安装python的机器上是不能直接运行,需要借助第三方库将脚本打包成exe文件,进而运行python程序。
本文记录一下Pyinstaller库打包py文件为exe的使用方法。
一、安装Pyinstaller库,pip install pyinstaller 这个不废话了。
二、简单的py程序,可以命令行进入pyinstaller所在的文件夹(如果没有配置环境变量的话,),直接执行(但是不推荐)。
pyinstaller -F main.py
或者pyinstaller -D main.py
就可以
-F 表示打包为单个exe文件
-D 表示打包为一个文件夹,里面有很多文件
三、推荐这样来做
1、考虑到项目复杂要做很多配置, 我们先来生成一个打包配置文件
执行命令pyi-makespec -F main.py
(也可以pyi-makespec -D main.py
等等), 然后你就会在main.py的同级目录下看到main.spec文件. 这个文件的主要作用就是指定打包的各种配置。
2、查看.spec配置文件。例如,如果在打包过程中提示Matplotlib出错,而在程序中,未包括使用Matplotlib库,可以在封装的时候不导入这个库,方法是在spec文件中的excludes行加上excludes=['matplotlib']
3、执行pyinstaller xx.spec
命令重新封装一遍。
打包好的程序会放在当前文件夹下一个叫dist的文件夹里面。
四、其他打包的命令(前提是如果没有配置环境变量的话,要先进入pyinstaller所在的文件夹)
pyinstaller -F main.py 打包成单个文件
pyinstaller -D main.py 打包为文件夹
pyinstaller -D -i xxx.ico main.py 定制图标
-i xxx.ico 表示自定义exe图标的样式
附件:pyinstaller相关参数
常用的就是-F -D
-F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护
-K, –tk 在部署时包含 TCL/TK
-a, –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码.
-d, –debug 产生debug版本的可执行文件
-w,–windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
-c,–nowindowed,–console
使用控制台子系统执行(默认)(只对Windows有效)