使用 pyinstaller 构建 exe 时找不到 APScheduler pytz-deprecation-shim

APScheduler pytz-deprecation-shim not found when building an exe with pyinstaller

当运行我用pyinstaller构建的exe程序在程序中使用APScheduler时每次都会出错。

pkg_resources.DistributionNotFound: The 'pytz-deprecation-shim' distribution was not found and is required by tzlocal

我之前在发行版中遇到过类似的问题:pytz、tzlocal 和 APScheduler 似乎使用的六个,但我可以通过创建 hook-pytz.py hook-tzlocal.py hook-six.py 来解决这个问题每个文件都包含以下代码和相应的分布:

from PyInstaller.utils.hooks import copy_metadata, collect_data_files

datas = copy_metadata('pytz')
datas += collect_data_files('pytz')

使用 pyinstaller 构建应用程序时,我调用 --additional-hooks-dir= 但是,现在相同的过程不适用于 pytz-deprecation-shim,因为我总是收到相同的错误。我该如何解决这个问题?我已经尝试将所有这些软件包升级到最新版本,但它们似乎是最新的。

版本: 皮茨2021.3, pytz-deprecation-shim 0.1.0.post0, 本地 4.1, 六个 1.16.0, APScheduler 3.8.1

我今天也遇到了这个问题

我的解决方案是使用 APScheduler 3.6.3。

这是我的hook-apscheduler.py

datas = copy_metadata('apscheduler', recursive=True)
hiddenimports = collect_submodules('apscheduler')