我正在尝试使用pyinstaller在Windows上使用tkcalendar在Windows上安装python应用程序。应用程序正在运行,但tkcalendar.Calendar无法运行。
当我运行未安装的应用程序时,一切正常,但是如果执行此操作,则不会出现“日历”窗口小部件。 我认为pyinstaller可以看到此模块,但是他对tkcalendar使用的模块有问题。 我试图用--path = / ... / python / Lib / site-packages运行pyinstaller,但这没有用。将模块文件复制到应用程序目录也无济于事。
答案 0 :(得分:0)
如果有人发现相同的问题。 在tkcalendar 1.5.0中,calendar.py中的导入存在问题。
找到 tkcalendar 文件夹(可能是/.../python/Lib/site-packages/tkcalendar),然后在 calendar.py 下为丢失的内容添加其他导入模块:
import calendar
from babel.dates import format_date, parse_date, get_day_names, get_month_names
from babel.numbers import * # Additional Import```
答案 1 :(得分:0)
问题并非来自tkcalendar
,而是来自PyInstaller未检测到第二级导入的事实。 tkcalendar的文档的HowTos部分中说明了解决此问题的方法:
使用PyInstaller捆绑应用程序时, issue与 检测tkcalendar的babel依赖关系。这可以通过解决 使用
--hidden-import
选项:$ pyinstaller --hidden-import babel.numbers myscript.py
或通过编辑 .spec 文件:
hiddenimports=["babel.numbers"]
答案 2 :(得分:0)
在与pyinstaller捆绑时,将以下代码添加到python脚本中
import babel.numbers