exchangelib与pyinstaller - zoneinfo - tzdata - UTC问题

4
在我的Python项目中,我正在使用exchangelib,并且需要创建exe文件。使用pyinstaller --onefile时,我遇到了UTC错误(通常是tzdata)-“密钥UTC中没有时区”。简化所有内容并按照https://github.com/ecederstrand/exchangelib/issues/897中的问题进行操作,我发现这个问题与这段简单的代码是相同的:
from zoneinfo import ZoneInfo
utc = ZoneInfo('UTC')

我还尝试了py2exe, cx_freeze,强制导入tzdata,但问题依旧。

我花费了很多时间寻找解决方法,现在我想分享我的临时方案,并讨论其他可行的解决方案。

3个回答

4

在探索了不同的选项后,这对我有用:

pyinstaller --collect-all tzdata --onefile file_name.py

附注:我一直在面临这个问题,并到这里去探索pyinstaller。你的解决方案也有效,但它是目录,而我希望它成为exe文件。


1
这应该是被接受的答案。提出复制“tzdata”文件夹的解决方法比这个要麻烦得多。 - LamerLink

2

0

我使用了规范文件进行打包,并将资源文件打包到配置中。

binaries=[('C:\ProgramData\Anaconda3\Lib\site-packages\tzdata\zoneinfo\UTC','tzdata\zoneinfo')] pathex=['C:\ProgramData\Anaconda3\Lib\site-packages\tzdata\zoneinfo'] hiddenimports=['tzdata.zoneinfo']


@Fabio Fracassi - Poer Hsueh
我更新了原始答案并添加了更多细节。 - Fabio Fracassi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接