首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用zipimport加载pytz时的pytz.exceptions.UnknownTimeZoneError

在Python中使用zipimport加载pytz时的pytz.exceptions.UnknownTimeZoneError
EN

Stack Overflow用户
提问于 2015-04-24 04:45:39
回答 1查看 4.1K关注 0票数 2

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

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

代码语言:javascript
复制
import zipimport

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

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

这会产生以下错误:

代码语言:javascript
复制
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时间戳相对于一个时区进行本地化,例如'America/Moncton‘。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-04-24 05:23:10

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

如我上面放置的链接所示,您可以通过以下方式完成此操作

代码语言:javascript
复制
from tzlocal import get_localzone
 tz = get_localzone()

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29833975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档