# python程序打包工具
# 注:需要事先安装pyinstaller库并且保证能够正常运行。
## -*- coding: utf-8 -*-
# 选择需要打包的py代码文件后将打包的exe文件输出到当前路径
from os import system, remove, getcwd
from os.path import isfile, basename
from shutil import move, rmtree
from win32ui import CreateFileDialog
print("选择需要打包的py文件:")
# 打开文本选择框
dlg = CreateFileDialog(1)
# 设置文本选择框标题
dlg.SetOFNTitle("请选择需要打包的py文件")
# 将默认打开路径设置为当前路径
dlg.SetOFNInitialDir(getcwd())
dlg.DoModal()
# 获取需要打包的文件名
filename = dlg.GetPathName()
# 组装pyinstaller的cmd命令
command = "pyinstaller -F --noupx "+filename
# 开始使用pyinstaller打包
print("开始打包:")
system(command)
print("清理打包痕迹:")
filename = basename(filename).rstrip("py")
# 将打包完成的exe文件转移到当前路径,并且删除打包产生的spec文件,build与dist文件夹
# 如果已存在相同文件名的打包exe文件,则覆盖上一次的打包文件
if isfile(filename+"exe"):
remove(filename+"exe")
move("dist/"+filename+"exe", getcwd())
remove(filename+"spec")
rmtree("build")
rmtree("dist")
print("运行结束。")
# 用这个打包工具也能打包它自己……