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

问题描述 投票:0回答:4

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

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

python tkinter pyinstaller tkcalendar
4个回答
22
投票

问题并非来自

tkcalendar
,而是来自 PyInstaller 未检测到二级导入这一事实。 tkcalendar 文档中的 HowTos 部分解释了解决此问题的方法:

当使用 PyInstaller 捆绑应用程序时,有一个 问题 检测 tkcalendar 的 babel 依赖性。这可以通过以下方式修复 使用

--hidden-import
选项:

$ pyinstaller --hidden-import babel.numbers myscript.py

或者通过编辑 .spec 文件:

hiddenimports=["babel.numbers"]

5
投票

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

import babel.numbers

2
投票

如果有人发现同样的问题。 在 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```

0
投票

愿上帝保佑你..............................

© www.soinside.com 2019 - 2024. All rights reserved.