pyinstaller 的基本使用方法
情况1:当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时
例如:
打包下面这个检查输入的ip是否符合规范的程序ipcheck.py,程序中只Import了自带的库re
from re import compile
ipAddr = input("请输入一个ip: ")
compile_ip = compile(
'^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
if compile_ip.match(ipAddr):
print(True)
else:
print(False)
下载pyinstaller
pip install pyinstaller
使用Pyinstaller打包。先进入该程序所在的文件夹,在文件资源管理器的文件路径处输入cmd,打开一个console。在界面中输入下面的语句:
pyinstaller -F ipcheck.py
待该指令执行完毕,可在.py文件所在文件夹内,发现两个新建的文件夹build/和dist/,以及一个新建的文件ipcheck.spec。在dist文件夹下可以找到一个.exe文件,直接双击该文件即可执行程序。
在这里附上pyinstaller的使用手册:pyinstaller user manual
进阶使用方法(填坑方式)
情况2:一般来说,当我们做一个比较大的项目的时候,难免会遇到调用不同.py文件中的自建函数,
比如,如果我在代码中加入这一行:
from file_loader import xml_loader
文件file_loader.py与ipcheck.py的文件夹层级关系如下,xml_loader是我在file_loader.py中自定义的一个函数。
|--dir
|--ipcheck.py
|--file_loader.py
此时如果还是按照情况1去操作,在运行exe时,会出现下列问题:
也就是说在打包exe时,我的自定义函数文件并没有被一起打包进去,导致找不到file_loader.py这个文件。那么此时我的解决方式为修改ipcheck.spec中的内容:
#pathex=[], 将这一行改为下面的一行
pathex=[