gpt4 book ai didi

tkinter - python 3.5 上带有 tkinter 应用程序的 Pyinstaller 问题

转载 作者:行者123 更新时间:2023-12-04 14:55:13 25 4
gpt4 key购买 nike

刚刚开始使用 Pyinstaller(以及一些 Tk 窗口)并且无法让我的 tkinter Windows 应用程序(在 python 3.5 下)成功运行。我可能正在做一些愚蠢的事情,但我已经尝试了我所知道的一切,我真的需要让它运行,所以非常感谢任何帮助。请注意,我所有的代码在普通的 python 3.5.1 和 3.5.3 下都可以正常运行。安装了最新版本的 PyInstaller (3.2.1),它似乎运行正常。

我切换到以下简单的窗口式“Hello World!”应用程序看看我是否可以让它工作,

from tkinter import *
root = Tk()
root.title("Test Window")

#Setup window widgets and place on window
l1 = Label(root,text='Hello World!',font=("Verdana",18))
l2 = Label(root,text='Hello World!',font=("Times New Roman",9))
b1 = Button(root, text='Button 1', font=("Verdana",12), state=DISABLED)
b1.pack()
b1.place(x=220, y=180)

l1.pack()
l1.place(x=170, y=10)
l2.place(x=200, y=60)

root.mainloop()

但它似乎与我的原始应用程序存在相同的问题。

也许这只是因为我是 PyInstaller 的新手,但我发现文档并不容易从中找到具体答案。但再深入一点,我决定在命令行中添加 -d 选项以查看调试输出,因为它试图执行我的应用程序,所以我使用的完整命令行是: > pyinstaller -F -w -d c:\PythonApps\Hello.py .这给了我很多以这个错误消息结尾的信息:

执行脚本 pyi_rth_tkinter 失败。

这与我在原始程序中看到的错误相同。我能够在我的系统上找到“pyi_rth_tkinter.py”(实际上是该文件的 2 个版本),但不确定为什么 PyInstaller 在执行它时遇到问题。但是由于该文件会吐出有关 Tcl 和 Tk 数据目录路径问题的错误消息,因此猜测它无论如何都会失败,即使它找到并运行了该文件。

好的,在 PyInstaller 运行期间更仔细地查看输出,我发现有几行看起来可能会导致我的问题:
3541 INFO: Loading module hook 'hook-_tkinter.py'
ImportError: cannot import name 'Tcl'
3659 ERROR: Tcl/Tk improperly installed on this system.

我查看了“hook-_tkinter.py” Hook 文件(并通读了 PyInstaller 文档),但没有发现任何明显的问题。但我并不完全了解钩子(Hook)文件的所有细节以及它们需要包含的确切内容(任何人都可以帮助解决这个问题吗???)。不完全确定问题是什么,但似乎 PyInstaller 在链接到 tkinter 时出现问题,这导致我的应用程序无法运行。有没有人使用 PyInstaller 3.2.1 来执行一个简单的 Python 3.5 WINDOWS 应用程序?如果是这样,请分享如何!我已经进行了大量的搜索和阅读,但还没有发现问题所在。如果有人有线索,请帮助。非常感谢任何指导!

一点额外的信息。不知道为什么 PyInstaller 说 Tcl/Tk 没有正确安装。我刚刚安装了 Python 3.5.3 并自动安装了 tkinter。执行 'tkinter._text()' 在外壳中,它似乎工作正常。在正常使用 python 的情况下,我对 tkinter 的所有使用似乎在所有 3.5 版本下都可以正常工作。我遇到的唯一 tkinter 问题是 PyInstaller。验证了使用 安装的 Tcl/Tk 的确切版本'tkinter.Tcl().eval('info patchlevel')' 它报告了 '8.6.4' .有谁知道 Tcl/Tk 的任何其他安装问题可能是个问题?我没有做任何特别的安装 tkinter,我只是通过 正常安装了 pyinstaller 'pip install pyinstaller' 全新安装 后'python 3.5.3' .还有什么我应该做的吗?任何帮助是极大的赞赏!!!

最佳答案

我在 tkinter 和 python 3.5 上遇到了类似的问题
看完后https://pythonhosted.org/PyInstaller/hooks.html#understanding-pyinstaller-hooks

添加 --hidden-import tkinter 的选项

pyinstaller --onefile --hidden-import tkinter hello.py

关于tkinter - python 3.5 上带有 tkinter 应用程序的 Pyinstaller 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com