Это немного смущает, но я не смог найти хороших ресурсов по этой теме.
Я работаю над приложением Google App Engine, которое требует сложных преобразований часовых поясов. Поскольку я не нахожусь рядом с введенными квотами, я решил пойти с PyTZ. Тем не менее, я должен делать что-то не так. Что я сделал до сих пор:
- Загруженный 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 в архиве. Я включил в свой проект весь каталог 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
...