pytz中缺少时区信息? [英] Timezone Information Missing in pytz?
问题描述
我在使用 Python 的 pytz
时遇到了一个非常奇怪的问题:我的系统(MacOS X 10.8.5,系统 Python 2.7.5)上的时区目录似乎不完整.><预><代码>>>>从 pytz 导入时区>>>进口pytz>>>utc = pytz.utc>>>UTC区域'世界标准时间'>>>东部 = 时区('美国/东部')回溯(最近一次调用最后一次):文件<stdin>",第 1 行,在 <module> 中文件pytz/__init__.pyc",第 182 行,在时区pytz.exceptions.UnknownTimeZoneError: '美国/东部'
因此无法找到时区 'US/Eastern'
.因此,我尝试查看 pytz
提供的时区目录:
如您所见,它结束得相当早,并且缺少许多时区.我试图通过更新 Olson 数据库 pytz
在内部使用来克服这个问题:
$ sudo pip install -U pytz
但问题依旧...
任何想法这里可能出了什么问题?我错过了什么吗?
我不能说为什么你的 pytz 安装被破坏了,但这里有一个可能的修复:
- 从 Python 包索引下载 pytz 的 .zip 存档.
- 在 Terminal.app 中,运行
pip show pytz
. - 使用它返回的路径,运行
open/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
(如果不同,用你的路径替换我的路径).这将启动一个包含 Python 模块的 Finder 窗口. - 找到 pytz/文件夹.打开它.
- 将 zoneinfo/文件夹替换为您在第 1 步中从 PyPI 下载的 .zip 存档中的 zoneinfo/文件夹.
I'm having a very weird problem with Python's pytz
: it seems to have an incomplete catalog of timezones on my system (MacOS X 10.8.5, system Python 2.7.5).
>>> from pytz import timezone
>>> import pytz
>>> utc = pytz.utc
>>> utc.zone
'UTC'
>>> eastern = timezone('US/Eastern')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pytz/__init__.pyc", line 182, in timezone
pytz.exceptions.UnknownTimeZoneError: 'US/Eastern'
So the timezone 'US/Eastern'
can't be found.
Accordingly I tried to have a look at the catalog of timezones that pytz
offers:
>>> from pytz import all_timezones
>>> for tz in pytz.all_timezones:
... print tz
...
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Timbuktu
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Atka
America/Bahia
America/Bahia_Banderas
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Buenos_Aires
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Catamarca
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Coral_Harbour
America/Cordoba
America/Costa_Rica
America/Creston
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Ensenada
America/Fort_Wayne
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Tell_City
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Inuvik
America/Iqaluit
America/Jamaica
America/Jujuy
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Knox_IN
America/Kralendijk
America/La_Paz
America/Lima
America/Los_Angeles
So as you can see, it ends rather prematurely and many many timezones are missing.
I tried to overcome this by updating the Olson database pytz
uses internally:
$ sudo pip install -U pytz
But the problem persists...
Any ideas what might be going wrong here? Am I missing something?
I cannot say why your installation of pytz is broken, but here's a possible fix:
- Download the .zip archive of pytz from the Python Package Index.
- In Terminal.app, run
pip show pytz
. - Using the path it returns, run
open /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
(replacing my path with yours if different). This will launch a Finder window with your Python modules. - Find the pytz/ folder. Open it.
- Replace the zoneinfo/ folder with the zoneinfo/ folder that's in the .zip archive you downloaded in step 1 from PyPI.
这篇关于pytz中缺少时区信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!