我正在尝试在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时间戳相对于一个时区进行本地化,例如'America/Moncton‘。
谢谢!
发布于 2015-04-24 05:23:10
你试过tzlocal吗?从我读到的Here来看,出于几个原因,pytz会给出一个未知的时区错误。-如果你没有给它一个时区名称,或者如果你给它的时区名称与pytz使用的时区名称不同,这取决于你的操作系统。使用tzlocal将您的本地时区作为tzinfo对象检索,以便与pytz一起正常使用,应该可以让您继续您的项目。
如我上面放置的链接所示,您可以通过以下方式完成此操作
from tzlocal import get_localzone
tz = get_localzone()我并不自称是专家,我只是在做一些自己的研究,试图帮助一个有需要的人。希望这对你有帮助。
https://stackoverflow.com/questions/29833975
复制相似问题