【问题标题】:installing pytz in gae is giving UnknownTimeZoneError在 gae 中安装 pytz 会给出 UnknownTimeZoneError
【发布时间】:2012-08-17 06:24:48
【问题描述】:

unutbu 很好地回答了我之前的问题here 2,但似乎没有 pytz 可以直接使用我的 SDK 导入。于是我去寻找替代品,发现,例如this answer,它建议从here 4下载。

我将以下代码放在本地交互式控制台中。

import datetime as dt
import pytz

utc = pytz.utc
western = pytz.timezone('US/Pacific')

我将下载的目录pytz 放在我的本地根目录scheduler 并解压缩包含的文件scheduler/pytz/zoneinfo.zip 并在交互式控制台中收到以下错误。我根本没有调整app.yaml;对吗?

"/Users/brian/googleapps/scheduler/pytz/__init__.py", line 173, in timezone
    raise UnknownTimeZoneError(zone)
UnknownTimeZoneError: 'US/Pacific'

我还找到了类似错误here 5 的答案,该错误建议对 init.py 文件进行修补。

现在我找到了一个答案here 6,这表明如果使用 VERSION 2010h 而不是 VERSION 2011h 并且我下载的 pytz 是 2010h,则会发生错误。什么是UP?

有没有一种简单的方法可以将 Wooble 的答案与 pytz 一起使用。他的回答是否暗示我必须在部署我的 gae 应用程序时上传 pytz 目录,或者那里已经有 pytz?

【问题讨论】:

  • 呃,谢谢,但我没有回答这个问题,我只是留下了一个有点刻薄的评论。

标签: python google-app-engine timezone pytz


【解决方案1】:

您需要调用 from pytz.gae import pytz 才能使 gae-pytz 工作,否则您将使用常规的 pytz。

【讨论】:

  • 好的,太好了。谢谢。这修复了错误消息。现在我需要知道即使我的 pytz VERSION 是 2010h,gae 是否有 pytz VERSION 2011h?如果 gae 有正确的版本,这是否意味着当我部署我的应用程序时,我不应该在上传中包含我的本地 pytz 目录?否则,我从哪里获得 VERSION 2011h?
  • 您应该使用(并上传)最新的时区信息,因为世界各地的时区信息会不断更新。您可以从pytz site 获取 folderinfo.zip
  • 那么您是说只有 zoneinfo VERSION 是旧的,而不是 pytz(在我看来,它确实看起来好像是旧的 pytz VERSION 本身)?请回答我关于部署时是否应该上传 pytz 文件夹的问题,还是没有必要?
  • gae-pytz 在过去几年中确实发生了很大变化,只有 folderinfo.zip。您应该使用 zip 上传整个包。
猜你喜欢
  • 2015-07-25
  • 2016-02-25
  • 1970-01-01
  • 2022-06-15
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2012-10-26
相关资源
最近更新 更多