【Python打包exe】一键打包简单、快捷方便!

由于老被欺骗,在寻找打包工具时试了好多方法,都是博取流量一点用处没有,在我一气之下,自己搞一个打包工具,简洁方便,操作顺畅!

 本文这个方式是可以直接把Py库都打包在一个exe里面,直接双击运行exe就可,发给任何人都可直接运行不需有Python环境!

import os
import sys
import subprocess
import tkinter as tk
from tkinter import filedialog

def pack_to_exe(py_file, output_path):
    # 检查提供的文件是否存在
    if not os.path.exists(py_file):
        print(f"错误:文件 '{py_file}' 不存在。")
        return

    # 获取文件名和扩展名
    filename, file_extension = os.path.splitext(py_file)

    # 检查文件是否为Python文件
    if file_extension.lower() != '.py':
        print("错误:请提供一个带有 '.py' 扩展名的有效Python文件。")
        return

    # 确保自定义输出路径存在
    os.makedirs(output_path, exist_ok=True)

    # 设置输出文件的路径
    output_filename = os.path.join(output_path, f"{filename}.exe")

    # 使用PyInstaller创建可执行文件
    try:
        subprocess.run(['pyinstaller', '--onefile', '--distpath', output_path, '--specpath', output_path, py_file], check=True)
        print("可执行文件创建成功!")
    except subprocess.CalledProcessError:
        print("在创建可执行文件时发生错误。")
        return

def browse_file():
    file_path = filedialog.askopenfilename(filetypes=[("Python files", "*.py")])
    if file_path:
        input_file_entry.delete(0, tk.END)
        input_file_entry.insert(0, file_path)

def browse_folder():
    folder_path = filedialog.askdirectory()
    if folder_path:
        output_folder_entry.delete(0, tk.END)
        output_folder_entry.insert(0, folder_path)

def pack_button_clicked():
    python_file = input_file_entry.get()
    output_folder = output_folder_entry.get()
    pack_to_exe(python_file, output_folder)

if __name__ == "__main__":
    root = tk.Tk()
    root.title("打包一键可执行exe文件")

    tk.Label(root, text="选择要打包成exe文件的Python脚本:").pack(pady=5)
    input_file_entry = tk.Entry(root, width=50)
    input_file_entry.pack(pady=5)
    tk.Button(root, text="浏览", command=browse_file).pack(pady=5)

    tk.Label(root, text="选择保存exe文件的文件夹:").pack(pady=5)
    output_folder_entry = tk.Entry(root, width=50)
    output_folder_entry.pack(pady=5)
    tk.Button(root, text="浏览", command=browse_folder).pack(pady=5)

    tk.Button(root, text="打包为exe", command=pack_button_clicked).pack(pady=10)

    root.mainloop()

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值