热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3.5上带有tkinter应用程序的Pyinstaller问题

如何解决《python3.5上带有tkinter应用程序的Pyinstaller问题》经验,为你挑选了1个好方法。

刚开始使用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 -dc :\ 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”钩子文件(并阅读了PyInstaller文档),但没有发现任何明显的问题。但是我不完全了解钩子文件的所有详细信息以及它们需要包含的内容(任何人都可以帮忙吗?)。不能完全确定问题是什么,但是PyInstaller似乎在链接到tkinter时出现问题,这导致我的应用程序无法运行。是否有人GOTTEN PyInstaller 3.2.1甚至可以执行简单的PYTHON 3.5 WINDOWS应用程序?如果是这样,请分享!我已经进行了大量的搜索和阅读,但是还无法发现问题所在。如果有人有线索,请帮助。任何指导,不胜感激!


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



1> 小智..:

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

添加--hidden-import tkinter选项

pyinstaller --onefile-隐藏导入tkinter hello.py


推荐阅读
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • 使用Flutternewintegration_test进行示例集成测试?回答首先在dev下的p ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
author-avatar
mobiledu2502857017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有