gpt4 book ai didi

python - 在 Python 中使用 zipimport 加载 pytz 时出现 pytz.exceptions.UnknownTimeZoneError

转载 作者:可可西里 更新时间:2023-11-01 14:49:28 26 4
gpt4 key购买 nike

我正在尝试在 python 脚本中使用 pytz,用作 hadoop 流作业的映射器。

按照另一个线程中的建议,我尝试将 pytz 打包为 zip“pytz.mod”,并使用 zipimport 加载它:

import zipimport

importer = zipimport.zipimporter('pytz.mod')
pytz = importer.load_module('pytz')

from pytz import timezone
user_timezone = timezone('America/Moncton')

这会产生以下错误:

Traceback (most recent call last):
File "./load-pytz.py", line 15, in <module>
user_timezone = timezone('America/Moncton')
File "./lib/python2.6/site-packages/pytz/__init__.py", line 180, in timezone
pytz.exceptions.UnknownTimeZoneError: 'America/Moncton'

我找到了 this thread ,问题似乎是 zipimport 无法加载 zoneinfo 目录中的二进制文件。我试图按照线程中的说明进行操作,但无法使它们正常工作。是否有更简单的机制来打包 zoneinfo,而无需通过 py2exe?

我需要做的就是相对于时区本地化 UTC 时间戳,例如“美国/蒙克顿”。

谢谢!

最佳答案

你试过 tzlocal 了吗?从我读到的Here , pytz 会出于某些原因给出未知时区错误。 - 如果你没有给它一个时区名称,或者你给它的时区名称,取决于你的操作系统,与 pytz 使用的时区名称不同。使用 tzlocal 检索您的本地时区作为 tzinfo 对象,以便像往常一样与 pytz 一起使用,应该让您继续您的项目。

如我在上面放置的链接所示,您可以通过

from tzlocal import get_localzone
tz = get_localzone()

我不自称是专家,只是做一些我自己的研究,试图帮助有需要的人。希望对您有所帮助。

关于python - 在 Python 中使用 zipimport 加载 pytz 时出现 pytz.exceptions.UnknownTimeZoneError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com