将 .py/.pyw 转换为 .exe

Convert .py/.pyw to .exe

我想从 .py.pyw 文件创建一个 .exe 文件。

我该怎么做? (

对将要转换的文件进行编码

  1. 下载 cx_Freeze(如果您没有下载)here
  2. 创建一个新的 Python 文件并粘贴以下代码:

import os
import time
from tkinter import *
from tkinter.filedialog import askopenfile
from tkinter.scrolledtext import ScrolledText
from tkinter.messagebox import *

tk = Tk()
tk.title(".py -> .exe")
tk.resizable(0, 0)

f = None # file chosen

def browse():
    global f, btn
    try:
        f = askopenfile().name # get the path of the chosen file
        btn["text"] = os.path.basename(f)
    except:
        f = None

def convert():
    global f, btn, ver, des
    OK = False
    try:
        dots = 0
        for x in ver.get():
            if x == ".":
                dots += 1
            else:
                x = int(x)
        if dots < 4:
            OK = True # check the number of dots in the version
    except:
        showwarning("","The version must be int.int.int... with max 3 dots.")
    if OK:
        try:
            if f is None:
                showwarning("","You must choose a file to convert.")
                btn.focus()
            elif ver.get() == "":
                showwarning("","You must enter a version.")
                ver.focus()
            else:
                # create and fill the launch files
                with open("setup.py", "w") as f_:
                    f_.write("NAME = '" + f +
                        "'\nVERSION = '" + ver.get() +
                        "'\nDESCRIPTION = \"\"\"" + des.get(1.0, "end") +
                        "\"\"\"\n\nfrom cx_Freeze import setup, Executable\nsetup(name = NAME, version = VERSION, description = DESCRIPTION, executables = [Executable(NAME)])")
                with open("start.bat", "w") as f_:
                    f_.write("py setup.py build")
                os.system("start.bat") # run the launch file

                os.remove("setup.py")  # remove the created files
                os.remove("start.bat") #
                showinfo("Information","End. Your exe file is in folder 'build'.")
        except:
            showerror("Error","Unknown error detected.") # any unknown error

# GUI
Label(text="File to convert").grid(column=0, row=0, sticky="w")
btn = Button(text="Browse...", command=browse)
btn.grid(column=1, row=0)
Label(text="Version").grid(column=0, row=2, sticky="w")
ver = Entry(width=23)
ver.grid(column=1, row=2, padx=5)
ver.insert(0, "1.0")
Label(text="Description").grid(column=0, row=3, sticky="w")
des = ScrolledText(width=15, height=5, wrap=WORD)
des.grid(column=1, row=3)
Label(text="Convert to .exe").grid(column=0, row=4, sticky="w")
Button(text="Convert", command=convert).grid(column=1, row=4, pady=5)

tk.mainloop()
  1. 运行 代码。选择一个文件。单击 convert 按钮。

  2. 命令提示符 window 允许您查看进度。


错误

  1. 命令提示符打开的时间很短
  • 改变

      with open("start.bat", "w") as f_:
          f_.write("py setup.py build")
    

    来自

      with open("start.bat", "w") as f_:
          f_.write("py setup.py build")
          f_.write("pause")
    

    然后,上网搜索错误。

  • 检查您是否选择了 .py.pyw 文件。

  1. 未创建文件夹“build”
  • 检查要转换的文件的路径:它是否包含重音字符,一些空格? >> 例如将文件放在您的桌面上,或者放在闪存驱动器中以避免它。
  • 检查描述:是否包含重音字符?删除它们。
  • 你安装了cx_Freeze了吗?
  1. 您无法打开 .exe 文件
  • 如果您的代码需要其他文件,如图像、音乐,请将它们复制到当前文件夹中。
  • 你检查过你的文件了吗?它包含一些错误吗?
  • 如果您使用 tkinter:您是否循环了 window?