我已经使用这个compile.py安装了很多次,并取得了巨大的成功。我刚刚发现更新一个应用程序后,它在python中运行良好。当我冻结它时,它不会运行正确,不会输出任何错误?Python 3 cx_freeze Win34GUI问题
这是我的编译的代码:
from cx_Freeze import setup, Executable
import sys
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(name = "MYAPP" ,
version = "0.1" ,
description = "MYAPP" ,
executables = [Executable("MYAPP.py",
icon = "s.ico",
base = base)] ,)
当我移除基底=基线,该.exe与输出窗口中启动和应用程序正常运行。如果我设置base = base来删除输出窗口,那么应用程序不会正确运行?
我相信问题代码是urllib.request.urlretrieve的reporthook函数,因为它直到我尝试集成此下载进度条时才开始执行此操作。这是为我尝试下载的每个文件运行的for循环的一部分。它会下载第一个文件,然后停止它达到100%后,只有在compile.py文件中设置base = base ...
我迷路了。
感谢您的帮助!
def reporthook(blocknum, blocksize, totalsize):
percent = 0
readsofar = blocknum * blocksize
if totalsize > 0:
percent = readsofar * 1e2/totalsize
if percent >= 100:
percent = 100
s = "\r%5.1f%% %*d/%d" % (
percent, len(str(totalsize)), readsofar, totalsize)
self.time['text'] = 'Downloading File: '+self.fn+'' + s
if readsofar >= totalsize: # near the end
sys.stderr.write("\n")
else: # total size is unknown
sys.stderr.write("read %d\n" % (readsofar,))
#UPDATE PROGRESSBAR
self.pb.config(mode="determinate")
if percent > 0:
self.dl_p = round(percent,0)
self.pb['value'] = self.dl_p
self.pb.update()
if percent > 100:
self.pb['value'] = 0
self.pb.update()
urllib.request.urlretrieve(imgs, fileSavePath, reporthook)
体面的问题,但有代码格式化的东西堰。你可以删除反引号之间的空格吗?更可读的问题可能会导致更多的答复。 – ShellFish
对不起,网站新增功能。必须习惯编辑。 – rankind
没问题,只是想帮忙。但是,我在很长一段时间里看到的第一个更好的第一次问题,因此其他人,我正在给你upvotes :)保持良好的工作! – ShellFish