将 .py/.pyw 转换为 .exe
Convert .py/.pyw to .exe
我想从 .py
或 .pyw
文件创建一个 .exe
文件。
我该怎么做? (cx-freeze)
对将要转换的文件进行编码
- 下载
cx_Freeze
(如果您没有下载)here。
- 创建一个新的
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()
运行 代码。选择一个文件。单击 convert
按钮。
命令提示符 window 允许您查看进度。
错误
- 命令提示符打开的时间很短
改变
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
文件。
- 未创建文件夹“build”
- 检查要转换的文件的路径:它是否包含重音字符,一些空格? >> 例如将文件放在您的桌面上,或者放在闪存驱动器中以避免它。
- 检查描述:是否包含重音字符?删除它们。
- 你安装了
cx_Freeze
了吗?
- 您无法打开
.exe
文件
- 如果您的代码需要其他文件,如图像、音乐,请将它们复制到当前文件夹中。
- 你检查过你的文件了吗?它包含一些错误吗?
- 如果您使用
tkinter
:您是否循环了 window?
我想从 .py
或 .pyw
文件创建一个 .exe
文件。
我该怎么做? (cx-freeze)
对将要转换的文件进行编码
- 下载
cx_Freeze
(如果您没有下载)here。 - 创建一个新的
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()
运行 代码。选择一个文件。单击
convert
按钮。命令提示符 window 允许您查看进度。
错误
- 命令提示符打开的时间很短
改变
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
文件。
- 未创建文件夹“build”
- 检查要转换的文件的路径:它是否包含重音字符,一些空格? >> 例如将文件放在您的桌面上,或者放在闪存驱动器中以避免它。
- 检查描述:是否包含重音字符?删除它们。
- 你安装了
cx_Freeze
了吗?
- 您无法打开
.exe
文件
- 如果您的代码需要其他文件,如图像、音乐,请将它们复制到当前文件夹中。
- 你检查过你的文件了吗?它包含一些错误吗?
- 如果您使用
tkinter
:您是否循环了 window?