将py文件封装成EXE文件后,打开后显示exit未被定义
本帖最后由 18305177067 于 2023-2-16 15:53 编辑py文件中代码为
import tkinter.filedialog as tf
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.dialogs import Messagebox as msgbox
from pdf2docx import Converter
from docx2pdf import convert
import os
def pdf_to_words():
folder = tf.askdirectory(title='选择文件夹')
try:
for file in os.listdir(folder):
suff_name = os.path.splitext(file) # 分离出扩展名
if suff_name != '.pdf': # 如果不是PDF文档就退出
continue
file_name = os.path.splitext(file) # 分离出文件名
pdf_file = folder + '\\' + file
word_file = folder + '\\' + file_name + '.docx' # 进行转义并加上扩展名
cv = Converter(pdf_file) # 转成Word
cv.convert(word_file)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件夹!')
def pdf_to_word():
try:
pdffile = tf.askopenfilename(title='选择PDF文档') # 选择文件
wordfile = os.path.splitext(pdffile) + '.docx'
cv = Converter(pdffile)
cv.convert(wordfile)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def word_to_pdf():
try:
inputfile = tf.askopenfilename(title='选择docx文档')
outputfile = os.path.splitext(inputfile) + '.pdf'
f1 = open(outputfile, 'w')
f1.close()
convert(inputfile, outputfile)
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def about():
msgbox.show_info(message='版本号:v2.0\n制作者:鱼C论坛 liuhongrun2022')
root = ttk.Window()
root.title('PDF_to_Word2.0')
root.geometry('900x100')
b1 = ttk.Button(root, text="pdf批量转word", bootstyle='info-outline', command=pdf_to_words)
b1.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b2 = ttk.Button(root, text='pdf单文件转word', bootstyle='warning-outline', command=pdf_to_word)
b2.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b5 = ttk.Button(root, text='word转pdf',bootstyle='info-outline', command=word_to_pdf)
b5.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b3 = ttk.Button(root, text='关于', bootstyle='success-outline', command=about)
b3.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b4 = ttk.Button(root, text='退出',bootstyle='danger-outline', command=exit)
b4.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l = ttk.Label(root, bootstyle='inverse-warning', text='转换中出现"未响应"为正常现象。')
l.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l.configure(font=('微软雅黑 Light',9))
root.mainloop()
在编辑器中可以运行!!!
请求大佬帮助!!!
本帖最后由 isdkz 于 2023-2-16 16:02 编辑
这里说的是第69行的 exit 没有定义,但是你发的代码都没有 exit ,你就不能发完整代码吗? 这个程序我知道,但好像没有关于 say 的函数? isdkz 发表于 2023-2-16 15:24
这里说的是第69行的 say 没有定义,但是你发的代码都没有 say,你就不能发完整代码吗?
这程序我写的
完整代码在这:
(我也不知道为啥打包之后运行报错)
import tkinter.filedialog as tf
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.dialogs import Messagebox as msgbox
from pdf2docx import Converter
from docx2pdf import convert
import os
def pdf_to_words():
folder = tf.askdirectory(title='选择文件夹')
try:
for file in os.listdir(folder):
suff_name = os.path.splitext(file) # 分离出扩展名
if suff_name != '.pdf': # 如果不是PDF文档就退出
continue
file_name = os.path.splitext(file) # 分离出文件名
pdf_file = folder + '\\' + file
word_file = folder + '\\' + file_name + '.docx' # 进行转义并加上扩展名
cv = Converter(pdf_file) # 转成Word
cv.convert(word_file)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件夹!')
def pdf_to_word():
try:
pdffile = tf.askopenfilename(title='选择PDF文档') # 选择文件
wordfile = os.path.splitext(pdffile) + '.docx'
cv = Converter(pdffile)
cv.convert(wordfile)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def word_to_pdf():
try:
inputfile = tf.askopenfilename(title='选择docx文档')
outputfile = os.path.splitext(inputfile) + '.pdf'
f1 = open(outputfile, 'w')
f1.close()
convert(inputfile, outputfile)
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def about():
msgbox.show_info(message='版本号:v2.0\n制作者:鱼C论坛 liuhongrun2022')
root = ttk.Window()
root.title('PDF_to_Word2.0')
root.geometry('900x100')
b1 = ttk.Button(root, text="pdf批量转word", bootstyle='info-outline', command=pdf_to_words)
b1.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b2 = ttk.Button(root, text='pdf单文件转word', bootstyle='warning-outline', command=pdf_to_word)
b2.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b5 = ttk.Button(root, text='word转pdf',bootstyle='info-outline', command=word_to_pdf)
b5.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b3 = ttk.Button(root, text='关于', bootstyle='success-outline', command=about)
b3.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b4 = ttk.Button(root, text='退出',bootstyle='danger-outline', command=exit)
b4.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l = ttk.Label(root, bootstyle='inverse-warning', text='转换中出现"未响应"为正常现象。')
l.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l.configure(font=('微软雅黑 Light',9))
root.mainloop() isdkz 发表于 2023-2-16 15:24
这里说的是第69行的 say 没有定义,但是你发的代码都没有 say,你就不能发完整代码吗?
import tkinter.filedialog as tf
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.dialogs import Messagebox as msgbox
from pdf2docx import Converter
from docx2pdf import convert
import os
def pdf_to_words():
folder = tf.askdirectory(title='选择文件夹')
try:
for file in os.listdir(folder):
suff_name = os.path.splitext(file) # 分离出扩展名
if suff_name != '.pdf': # 如果不是PDF文档就退出
continue
file_name = os.path.splitext(file) # 分离出文件名
pdf_file = folder + '\\' + file
word_file = folder + '\\' + file_name + '.docx' # 进行转义并加上扩展名
cv = Converter(pdf_file) # 转成Word
cv.convert(word_file)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件夹!')
def pdf_to_word():
try:
pdffile = tf.askopenfilename(title='选择PDF文档') # 选择文件
wordfile = os.path.splitext(pdffile) + '.docx'
cv = Converter(pdffile)
cv.convert(wordfile)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def word_to_pdf():
try:
inputfile = tf.askopenfilename(title='选择docx文档')
outputfile = os.path.splitext(inputfile) + '.pdf'
f1 = open(outputfile, 'w')
f1.close()
convert(inputfile, outputfile)
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def about():
msgbox.show_info(message='版本号:v2.0\n制作者:鱼C论坛 liuhongrun2022')
root = ttk.Window()
root.title('PDF_to_Word2.0')
root.geometry('900x100')
b1 = ttk.Button(root, text="pdf批量转word", bootstyle='info-outline', command=pdf_to_words)
b1.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b2 = ttk.Button(root, text='pdf单文件转word', bootstyle='warning-outline', command=pdf_to_word)
b2.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b5 = ttk.Button(root, text='word转pdf',bootstyle='info-outline', command=word_to_pdf)
b5.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b3 = ttk.Button(root, text='关于', bootstyle='success-outline', command=about)
b3.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b4 = ttk.Button(root, text='退出',bootstyle='danger-outline', command=exit)
b4.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l = ttk.Label(root, bootstyle='inverse-warning', text='转换中出现"未响应"为正常现象。')
l.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l.configure(font=('微软雅黑 Light',9))
root.mainloop() liuhongrun2022 发表于 2023-2-16 15:38
这个程序我知道,但好像没有关于 say 的函数?
是我看错了,那里说的是 exit,我改回来 18305177067 发表于 2023-2-16 15:54
这个 exit 是终端才有的内置函数,可能图形界面没有,你换成 root.destroy 吧
对代码修改如下:
import tkinter.filedialog as tf
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.dialogs import Messagebox as msgbox
from pdf2docx import Converter
from docx2pdf import convert
import os
def pdf_to_words():
folder = tf.askdirectory(title='选择文件夹')
try:
for file in os.listdir(folder):
suff_name = os.path.splitext(file) # 分离出扩展名
if suff_name != '.pdf': # 如果不是PDF文档就退出
continue
file_name = os.path.splitext(file) # 分离出文件名
pdf_file = folder + '\\' + file
word_file = folder + '\\' + file_name + '.docx' # 进行转义并加上扩展名
cv = Converter(pdf_file) # 转成Word
cv.convert(word_file)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件夹!')
def pdf_to_word():
try:
pdffile = tf.askopenfilename(title='选择PDF文档') # 选择文件
wordfile = os.path.splitext(pdffile) + '.docx'
cv = Converter(pdffile)
cv.convert(wordfile)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def word_to_pdf():
try:
inputfile = tf.askopenfilename(title='选择docx文档')
outputfile = os.path.splitext(inputfile) + '.pdf'
f1 = open(outputfile, 'w')
f1.close()
convert(inputfile, outputfile)
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def about():
msgbox.show_info(message='版本号:v2.0\n制作者:鱼C论坛 liuhongrun2022')
root = ttk.Window()
root.title('PDF_to_Word2.0')
root.geometry('900x100')
b1 = ttk.Button(root, text="pdf批量转word", bootstyle='info-outline', command=pdf_to_words)
b1.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b2 = ttk.Button(root, text='pdf单文件转word', bootstyle='warning-outline', command=pdf_to_word)
b2.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b5 = ttk.Button(root, text='word转pdf',bootstyle='info-outline', command=word_to_pdf)
b5.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b3 = ttk.Button(root, text='关于', bootstyle='success-outline', command=about)
b3.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b4 = ttk.Button(root, text='退出',bootstyle='danger-outline', command=root.destroy) # 改了这行
b4.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l = ttk.Label(root, bootstyle='inverse-warning', text='转换中出现"未响应"为正常现象。')
l.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l.configure(font=('微软雅黑 Light',9))
root.mainloop()
页:
[1]