如何通过 pyinstaller 使用 tkcalendar 模块安装 python 应用程序?

Bod*_*322 5 python tkinter pyinstaller tkcalendar

我正在尝试使用 pyinstaller 在 Windows 上安装 python 应用程序,其中我正在使用 tkcalendar。应用程序正在运行,但 tkcalendar.Calendar 没有。

当我在没有安装的情况下运行应用程序时,一切正常,但如果我这样做,日历小部件不会出现。我认为 pyinstaller 看到了这个模块,但他对 tkcalendar 正在使用的模块有问题。我尝试使用 --path=/.../python/Lib/site-packages 运行 pyinstaller 但这没有用。将模块文件复制到应用程序目录也无济于事。

j_4*_*321 9

问题不是来自tkcalendar而是来自 PyInstaller 没有检测到二级导入的事实。解决这个问题的方法是在tkcalendar的文档中解释的HOWTOs部分:

当捆绑在一起PyInstaller的应用程序,有一个 问题与检测tkcalendar的通天依赖。这可以通过使用以下--hidden-import选项来修复:

$ pyinstaller --hidden-import babel.numbers myscript.py
Run Code Online (Sandbox Code Playgroud)

或通过编辑.spec文件:

hiddenimports=["babel.numbers"]
Run Code Online (Sandbox Code Playgroud)


小智 5

将以下代码添加到您的 python 脚本中,同时与 pyinstaller 捆绑

import babel.numbers
Run Code Online (Sandbox Code Playgroud)