代码之家  ›  专栏  ›  技术社区  ›  Chris Brocious

编译时不包括tkinter模块的Pyinstaller

  •  1
  • Chris Brocious  · 技术社区  · 6 年前

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

    请大家注意!

    2 回复  |  直到 6 年前
        1
  •  0
  •   TheOne    6 年前

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

    第二种选择: 尝试使用cx_freeze,如下所述 cx_freeze tutorial . 这是一个更多的编码,但它可能对你更好

        2
  •  0
  •   sanM    6 年前

    在pyinstaller的构建过程中,除了Tkinter之外,pyinstaller也有同样的问题——onefile filename.py build。我的pyinstaller.exe文件可以在安装了Python的系统上运行,但不能在没有安装Python的独立windows系统上运行。无法运行并显示消息:

    文件“Lib\Lib tk\Tkinter.py”,第1819行,在初始化Tkinter.tcl中错误:在以下目录中找不到可用的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

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

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