【问题标题】:Pyinstaller excluding tkinter module when compilingPyinstaller 在编译时不包括 tkinter 模块
【发布时间】:2018-12-22 18:00:41
【问题描述】:

我正在构建一个计划分发的项目。编译后的 dist 文件在我的计算机上运行良好,但是当我将它发送给其他人时它失败了。我在构建中注意到它不包括“tkinter”模块,这是项目的 GUI。我已经尝试了 -import tkinter --hidden-import=tkinter 的所有选项,在多个版本的 python 上,并安装了 pip 和 pip3 的 pyinstaller。我已经到达了宇宙的尽头:P 并且 tkinter 仍然不会包含在构建中。

请放心!

【问题讨论】:

    标签: tkinter pyinstaller


    【解决方案1】:

    我坚信您在处理代码时在 cmd 中看到了它。就我而言,pyinstaller 会自动包含 tkinter...也就是说不需要单独包含它(顺便说一句:--hidden-import 不是t 适用于以经典方式定义的模块 - import tkinter)。您是否尝试过在不包含任何选项的情况下简单地运行 pyinstaller 脚本?

    第二个选项: 按照cx_freeze tutorial 的说明尝试使用 cx_freeze。编码有点多,但它可能更适合你

    【讨论】:

    • cx_freeze 会创建一个文件吗?是的,我在它所排除的构建中看到了。
    • 不,但是您可以将使用 InstallForge 软件获得的文件夹打包到经典的 InstallShield 向导(我认为这是最好的方法)。我还看到在“pyinstalling”时排除了 tkinter,但这可能是一个错误,因为当我从 dist 文件夹启动 .exe 时,它​​正在工作
    • 它会在你的终端上运行,但如果你尝试分发它会在其他人的电脑上崩溃。这就是我的经历。
    • 嗯,我的经验不同,当exe在另一台PC上启动时,它也可以工作......(一开始没有,tkinter没问题,但我遇到了另一个包的问题)
    • Brociouschristopher@gmail.com 给我一个电子邮件人。我很想弄清楚这件事,如果你能帮助我,我会尽我所能来回报
    【解决方案2】:

    在 pyinstaller --onefile filename.py 构建的构建过程中,除了 Tkinter 之外,我也遇到了与 pyinstaller 完全相同的问题。我的 pyinstaller .exe 文件可以在安装了 Python 的系统上运行,但不能在没有安装 Python 的独立 Windows 系统上运行。运行失败并显示一条消息:

    文件“Lib\lib-tk\Tkinter.py”,第 1819 行,在 __init___tkinter.TclError:在以下目录中找不到可用的 init.tcl:C:/Users/ADMINI~1/AppData/Local /Temp/lib/tcl8.5 E:/lib/tcl8.5 E:/lib/tcl8.5 E:/library E:/library E:/tcl8.5.15/library E:/tcl8.5.15/library

    我尝试了一些方法,但最终成功了: 在 .py 文件的顶部,我在其中进行了所有导入,我添加了:

    导入 Tkinter

    在添加之后,我仍然看到一条消息说在 pysintaller 构建过程中排除了 Tkinter,但是,最终的 .exe 文件在没有安装 Python 的独立机器上运行。

    希望这会有所帮助。我仍然对这个错误感到困惑,这个错误在我 5 个月前的最后一次分发中没有发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2020-04-02
      • 2019-11-04
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2012-12-14
      相关资源
      最近更新 更多