在我的python项目中,我使用exchangelib,需要创建一个exe文件。 使用pyinstaller--onefile时,我有UTC错误(通常是tzdata)- “关键UTC中没有timzone”。 简化所有操作并遵循此问题 https://github.com/ecederstrand/exchangelib/issues/897 我注意到这个简单代码的问题是相同的:
from zoneinfo import ZoneInfo
utc = ZoneInfo('UTC')
我也尝试过py2exe,cx_冻结,强制tzdata导入,同样的问题
我花了很多时间寻找解决办法,我想分享我的临时解决方案,但也讨论其他替代解决方案
在探索了不同的选择之后,这对我来说很有效:
PS:我一直面临着这个问题,并在这里探讨pyinstaller。您的解决方案也可以工作,但它是一个目录,我希望它是exe
我使用spec文件进行打包,并在配置中打包了资源文件
二进制文件=[('C:\ProgramData\Anaconda3\Lib\site packages\tzdata\zoneinfo\UTC','tzdata\zoneinfo')] pathex=['C:\ProgramData\Anaconda3\Lib\site packages\tzdata\zoneinfo'] HiddeInputs=['tzdata.zoneinfo']
我找到的解决方法是使用pyinstaller onedir(https://pyinstaller.readthedocs.io/en/stable/usage.html)并手动复制pyinstaller创建的主目录中的tzdata文件夹(\Python\Python39\Lib\site packages\tzdata)。 你有更优雅的其他解决方案吗
相关问题 更多 >
编程相关推荐