これは少し恥ずかしいことですが、私はこのトピックに関する良いリソースを見つけることができませんでした。
高度なタイムゾーン変換を必要とするGoogleAppEngineアプリケーションに取り組んでいます。私は課せられた割り当てにほど遠いので、PyTZを使用することにしました。しかし、私は何か間違ったことをしているに違いありません。私がこれまでに行ったことは次のとおりです。
- tarballとしてPyTZをダウンロード
- それをインストールし、ディレクトリを私のアプリのルートにコピーしました(これは、が配置されている
ディレクトリ
pytz
の兄弟です)。webapp
app.yaml
ただし、タイムゾーンをインスタンス化しようとすると、PyTZはタイムゾーンを見つけることができないようです。GAEのインタラクティブコンソールからのサンプルセッションは次のとおりです。
from pytz import timezone
rome = timezone('Europe/Rome')
出力は次のとおりです。
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/admin/__init__.py", line 210, in post
exec(compiled_code, globals())
File "<string>", line 3, in <module>
File "/Library/Python/2.5/site-packages/pytz-2009j-py2.5.egg/pytz/__init__.py", line 157, in timezone
UnknownTimeZoneError: 'Europe/Rome'
私が間違っているのは何ですか?よろしくお願いします。
注:Pythonインタラクティブシェルをローカルで使用するだけの場合、期待どおりに機能します。
>>> from pytz import datetime, timezone
>>> rome = timezone('Europe/Rome')
>>> rome.localize(datetime.datetime.now())
datetime.datetime(2009, 11, 12, 0, 4, 52, 990114, tzinfo=<DstTzInfo 'Europe/Rome' CET+1:00:00 STD>)
編集:私はPyTZのzipバージョンを使用していないことを明確にする必要があります。zoneinfo
プロジェクトにディレクトリ全体を含めました。
pc-morena:pytz lyudmilangelov$ cd zoneinfo/
pc-morena:zoneinfo lyudmilangelov$ ls -l
total 448
drwxr-xr-x@ 55 lyudmilangelov staff 1870 Nov 10 12:48 Africa
drwxr-xr-x@ 135 lyudmilangelov staff 4590 Nov 10 12:48 America
drwxr-xr-x@ 12 lyudmilangelov staff 408 Nov 10 12:48 Antarctica
drwxr-xr-x@ 3 lyudmilangelov staff 102 Nov 10 12:48 Arctic
drwxr-xr-x@ 93 lyudmilangelov staff 3162 Nov 10 12:48 Asia
...