exchangelib and zoneinfo - tzdata - UTC issue



在我的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,同样的问题。

我花了很多时间寻找解决方案,我想分享我的临时解决方案,但也讨论其他替代解决方案。

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

pyinstaller--收集所有tzdata--一个文件file_name.py

PS:我一直面临这个问题,并联系这里了解pyinstaller。你的解决方案也能工作,但它是一个目录,我希望它是exe。

我找到的解决方法是使用pyinstaller--onedir(https://pyinstaller.readthedocs.io/en/stable/usage.html)并手动复制pynstaller创建的主目录中的tzdata文件夹(\Python\Python39\Lib\site packages\tzdata(。你有更优雅的其他解决方案吗?

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

binarys=[('C:\ProgramData\Anaconda3\Lib\site packages\tzdata\zoneinfo\UTC','zdata\zonein fo'(]pathex=['C:\ProgramData\Anaconda3\Lib\site packages\tzdata\zoneinfo']hiddenimports=['tzdata.zoneinfo']

相关内容

  • 没有找到相关文章