【问题标题】:(Windows 10 64 bits) Py to Exe Error Python 3.8 (Pyinstaller, cx_Freeze)(Windows 10 64 位)Py 到 Exe 错误 Python 3.8(Pyinstaller、cx_Freeze)
【发布时间】:2020-10-24 17:37:17
【问题描述】:

您好,我是python新用户,请原谅我的python基础水平。

我必须在 26/10/2020 更新标题到 Windows 10 64 位,因为我已经降级到 3.7 并且错误是一样的。 EXE 文件只是闪烁并关闭。

我将代码简化为仅屏幕,仅使用框架,结果相同,EXE 只是闪烁和关闭。

我认为该错误与 Pyinstaller 和 Windows 10 64 位问题有关。

我尝试使用 Pyhton 3.8 从 Py 创建 EXE 文件失败,使用 pyinstaller 和/或 cx_Freeze 得到相同的错误。

与.png、.ico 访问相关的几个错误,甚至从代码中删除,一个带框架的简单屏幕无法打开。

请有人帮我解决这个问题。

这是代码,我需要使用 .PNG 作为背景和屏幕上的 .ICO 创建一个文件 .exe,而不仅仅是作为 .exe 文件图标。

from tkinter import *
root=Tk()

#set windows size
root.resizable(width=False, height=False)
root.geometry("925x722")

#set title
root.title("SOFT1)")

#frame 1
f1=Frame(root, width=345,height=475,bg="light 
grey",highlightbackground="black",highlightthickness=4)
f1.place(x=20,y=235)

#set a image as BG
Logo=PhotoImage(file="fileIMG.png")
lab6=Label(root, image=Logo)
lab6.place(x=0, y=0)

【问题讨论】:

标签: python pyinstaller cx-freeze


【解决方案1】:

pyinstaller 目前不支持 python 3.8。我相信 cx_Freeze 确实如此,但如果您不需要 python 3.8 的任何特定功能,那么我会降级到 python 3.7 并再次尝试使用 pyinstaller。这样更简单。

我没有任何具体的错误可以作为我回答的依据,但我会向您展示我修复 pyinstaller 问题的常用方法。首先,我将使用选项 --debug=all 运行 pyinstaller 命令。通过使用此选项,您可以在尝试运行程序时看到幕后发生的所有事情。然后尝试从命令行运行 .exe 文件,并将标准错误重定向到文本文件:

>your_program_here.exe 2> error.txt

如果你查看error.txt,你应该会看到很多信息。要寻找的最重要的事情是程序回溯。当您正在运行的 python 程序出现错误时,您会看到这种回溯。回溯将显示代码中的哪一行引发了错误,这通常是导致 .exe 无法工作的罪魁祸首。

从您的代码来看,我会尝试使用绝对文件路径来打开您的图像。现在你有了它,所以 Pet_toolShare.png 从你的 python 文件所在的同一个文件夹中打开 从运行。 Pyinstaller 将 .exe 放在“dist”文件夹中,因此除非您将 .exe 放在与图像相同的文件夹中,否则它将无法从外部访问任何文件。

【讨论】:

  • 谢谢,我做了3.7降级,错误还是一样,老是说:tkinter.TclError: could't open "file.png": no such file or directory [51132] Failed to execute脚本文件
  • 检查调试屏幕,错误总是相同的.PNG定义为背景未加载且无法打开。即使是 Python 3.7。
  • @TheKraken 你能用你所面临的确切错误更新你的问题吗? IE。追溯
  • 我必须在 2020 年 10 月 26 日将标题更新为 Windows 10 64 位,因为我已经降级到 3.7 并且错误是一样的。 EXE 文件只是闪烁并关闭。我将代码简化为仅屏幕,仅使用框架,结果相同,EXE 只是闪烁和关闭。我认为该错误与 Pyinstaller 和 Windows 10 64 位问题有关。
  • @TheKraken 我设法让它在我的电脑上运行,使用 Windows 8。我意识到你的代码底部没有“root.mainloop()”行,这是必需的让 tkinter 运行。我添加了这一行,使用 pyinstaller 内置到 .exe 中,然后将 exe 文件从“dist”文件夹移回主文件夹,以便它可以访问图像。这些步骤你都试过了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2020-04-08
  • 2018-01-29
相关资源
最近更新 更多