当前位置: 首页 > 知识库问答 >
问题:

python 3.5上使用tkinter应用程序的Pyinstaller的问题

陆宏扬
2023-03-14
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'(实际上是该文件的两个版本),但不确定为什么PyInstaller在执行它时会出现问题。但是,由于该文件会吐出关于Tcl和Tk数据目录路径问题的错误消息,因此猜测即使它找到并运行了该文件,它也会在此问题上失败。

3541 INFO: Loading module hook 'hook-_tkinter.py'
ImportError: cannot import name 'Tcl'
3659 ERROR: Tcl/Tk improperly installed on this system.

一些额外的信息。不知道为什么PyInstaller说Tcl/Tk没有正确安装。我刚刚安装了Python 3.5.3,而tkinter是自动安装的。在shell中执行了'tkinter._text()',它似乎工作正常。我对tkinter的所有使用,在所有3.5版本下,在正常使用Python的情况下,似乎都能很好地工作。我唯一遇到的问题是PyInstaller。验证了使用“tkinter.tcl().eval(”info patchlevel“)”安装的Tcl/Tk的确切版本,并报告为“8.6.4”。有人知道Tcl/Tk的其他安装问题吗?我没有为安装tkinter做任何特别的事情,我只是在重新安装了'Python 3.5.3'之后,通过'Pip install pyinstaller'正常安装了pyinstaller。我还应该做什么吗?任何帮助都非常感谢!!!

共有1个答案

常俊爽
2023-03-14

在查看https://pythonhosted.org/pyinstaller/hooks.html#remonitable-pyinstaller-hooks之后,我在tkinter和python 3.5中遇到了类似的问题

添加--hidded-import tkinter选项

pyinstaller--onefile--hidden-导入tkinter hello.py

 类似资料:
  • 亲爱的,我已经部署了如下示例服务: 当我执行get nodes-o wide时,如下所示, 任何帮助。谢了。

  • 很抱歉问这个问题。我找了几个小时,但找不到任何帮助。 我想用JSP做一个简单的问答应用程序。我创建了如下2个表 col1:QuizId col2:测验名称col3:问题数 COL1:QtnNum COL2:问题COL3:option1COL4:option2COL5:option3COL6:option4COL7:correctoption 我的要求是在页面末尾添加一个提交按钮。单击submit按

  • 我在数据库中存储表情符号时遇到了问题。我有一个tomcat网络应用程序连接到一个RDS MySQL数据库(5.5版本)所以基本上每当有一个表情符号,Hibernate会引发一个异常 组织。冬眠例外GenericJDBCException:无法插入:[pojos.hibernate.Comment] 原因是 java.sql.SQLExc0019:第1行的“文本”列的字符串值不正确:\xF0\x9F

  • 问题内容: 我想在GUI上显示程序的“实时”输出(显示在其中的所有内容)。如何访问我的输出?以及在文本框中显示它的正确方法是什么? 编辑:我哪里错了?(我希望“ hello world”出现在文本框中。(Test2是正在运行的程序)) 问题答案: 我花时间调试和修改了我对另一个问题的0)答案中的模块,因此它可以在Python 2 和 3中工作—链接答案中的代码是针对Python 2.x编写的。请注

  • 我有一个使用Thymeleaf作为模板引擎的Spring Boot应用程序,我添加了一个默认控制器,在服务器上部署时应该重定向到主页,控制器代码片段如下: 索引由 ViewResolver 解析到匹配的网页。 当在独立的Tomcat实例上部署生成的war“app . war”时,应用程序工作正常,我被重定向到主页(localhost:XXX/context _ path/index),“local