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

时间:2019-09-05 19:30:41

标签: python tkinter pyinstaller tkcalendar

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

当我运行未安装的应用程序时,一切正常,但是如果执行此操作,则不会出现“日历”窗口小部件。 我认为pyinstaller可以看到此模块,但是他对tkcalendar使用的模块有问题。 我试图用--path = / ... / python / Lib / site-packages运行pyinstaller,但这没有用。将模块文件复制到应用程序目录也无济于事。

3 个答案:

答案 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