前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现py打包exe小工具

python实现py打包exe小工具

作者头像
用户6367961
发布2021-10-18 18:05:41
9620
发布2021-10-18 18:05:41
举报
文章被收录于专栏:自学测试之道自学测试之道

写的python代码,有时候需要进行打包操作,但是又不记得打包指令,为此捣鼓一个打包的小工具,方便快速打包py文件(小工具还可以继续优化,比如加密、反编译等)。需要的小伙伴可以自行下载尝试。

直接上代码

py2exe.py

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021-10-10 14:05
# @Author  : ARM
# @Site    : 
# @File    : py2exe.py
# @Software: PyCharm
import py2exe_ui
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox
import os
from pathlib import PureWindowsPath

def dabao():
    """执行打包操作"""
    fullpath = ui.fileT.text()
    f = PureWindowsPath(fullpath)
    filedir = fullpath.replace(f.name,"")
    if ui.checkBox.isChecked() == True:

"       ""判断是否"""        second = os.system("cd " + filedir + "&&pyinstaller -F --clean -w " + fullpath)
if second == 0:
            QMessageBox.about(mainWindow, "执行结果", "恭喜!成功打包exe")
        else:
            QMessageBox.about(mainWindow, "执行结果", "请选择py文件路径")
    else:
        second = os.system("cd " + filedir + "&&pyinstaller -F --clean " + fullpath)
        if second == 0:
            QMessageBox.about(mainWindow, "执行结果", "恭喜,成功打包exe")
        else:
            QMessageBox.about(mainWindow, "执行结果", "请选择py文件路径")


if __name__=="__main__":
    app = QApplication(sys.argv)
    #创建一个窗口
    mainWindow = QMainWindow()
    ui = py2exe_ui.Ui_MainWindow()
    ui.setupUi(mainWindow)
    ui.pushButton_2.clicked.connect(dabao)
    mainWindow.show()
    sys.exit(app.exec_())

py2exe_ui.py

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021-10-10 14:05
# @Author  : ARM
# @Site    : 
# @File    : py2exe_ui.py
# @Software: PyCharm
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(648, 321)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        # 设置按键参数
        self.file = QtWidgets.QPushButton(self.centralwidget)
        self.file.setGeometry(QtCore.QRect(70, 20, 101, 31))
        self.file.setObjectName("file")
        self.file.setStyleSheet("background-color:rgb(111,180,219)")
        # 设置显示窗口参数
        self.fileT = QtWidgets.QLineEdit(self.centralwidget)
        self.fileT.setGeometry(QtCore.QRect(180, 20, 381, 31))
        self.fileT.setObjectName("file")
        # 是否隐藏
        self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox.setGeometry(QtCore.QRect(80, 120, 241, 21))
        self.checkBox.setObjectName("checkBox")
        # 打包按钮
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(230, 160, 271, 31))
        self.pushButton_2.setObjectName("pushButton_2")
        # exe存放路径描述
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(80, 140, 241, 21))
        self.label_3.setObjectName("label_3")
        font = QtGui.QFont()
        font.setPointSize(15)
        # self.label_3.setFont(font)  # 跟随系统字体
        # 页面布局
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 650, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

        ################button按钮点击事件回调函数################
        self.file.clicked.connect(self.msg)   #  选择py文件
        # self.file_exe.clicked.connect(self.openimage)  # 选择图片
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "py2exe by test"))
        self.file.setText(_translate("MainWindow", "选择py文件"))
        self.fileT.setText(_translate("MainWindow", ""))
        self.checkBox.setText(_translate("MainWindow", "启动exe程序时是否隐藏cmd窗口"))
        self.pushButton_2.setText(_translate("MainWindow", "开始打包"))
        # self.file_exe.setText(_translate("MainWindow", "选择exe文件"))
        # self.fileT_exe.setText(_translate("MainWindow", ""))
        self.label_3.setText(_translate("MainWindow", "注:exe保存路径为源文件所在文件!"))


    def msg(self, Filepath):
        """选择文件路径"""
        get_filename_path, ok = QFileDialog.getOpenFileName(None, "选取单个文件", "C:/", "All Files (*);;Text Files (*.txt)")
        if ok:
            self.fileT.setText(str(get_filename_path))

    # def openimage(self, Filepath):
    #     """选择图片路径"""
    #     imgName, imgType = QFileDialog.getOpenFileName(None, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
    #     # jpg = QtGui.QPixmap(imgName).scaled(self.fileT_exe.width(), self.fileT_exe.height())
    #     self.fileT_exe.setText(imgName)

最终实现效果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档