>>>从 pytz 导入时区>>>进口pytz>>>utc = pytz.utc>>>UTC区域'世界标准时间'>>>东部 = 时区('美国/东部')回溯(最近一次调用最后一次):文件<stdin>",第 1 行,在 <module> 中文件pytz/__init__.pyc",第 182 行,在时区pytz.exceptions.UnknownTimeZoneError: '美国/东部'因此无法找到时区 'US/Eastern'.因此,我尝试查看 pytz 提供的时区目录:>>>从 pytz 导入 all_timezones>>>对于 pytz.all_timezones 中的 tz:... 打印 tz...非洲/阿比让非洲/阿克拉非洲/亚的斯亚贝巴非洲/阿尔及尔非洲/阿斯马拉非洲/阿斯梅拉非洲/巴马科非洲/班吉非洲/班珠尔非洲/比绍非洲/布兰太尔非洲/布拉柴维尔非洲/布琼布拉非洲/开罗非洲/卡萨布兰卡非洲/休达非洲/科纳克里非洲/达喀尔非洲/Dar_es_Salaam非洲/吉布提非洲/杜阿拉非洲/El_Aaiun非洲/弗里敦非洲/哈博罗内非洲/哈拉雷非洲/约翰内斯堡非洲/朱巴非洲/坎帕拉非洲/喀土穆非洲/基加利非洲/金沙萨非洲/拉各斯非洲/利伯维尔非洲/洛美非洲/罗安达非洲/卢本巴希非洲/卢萨卡非洲/马拉博非洲/马普托非洲/马塞卢非洲/姆巴巴内非洲/摩加迪沙非洲/蒙罗维亚非洲/内罗毕非洲/恩贾梅纳非洲/尼亚美非洲/努瓦克肖特非洲/瓦加杜古非洲/新港非洲/圣多美非洲/廷巴克图非洲/的黎波里非洲/突尼斯非洲/温得和克美国/阿达克美国/安克雷奇美洲/安圭拉美洲/安提瓜美洲/阿拉瓜伊纳美国/阿根廷/布宜诺斯艾利斯美国/阿根廷/卡塔马卡美国/阿根廷/ComodRivadavia美国/阿根廷/科尔多瓦美国/阿根廷/胡胡伊美国/阿根廷/拉里奥哈美国/阿根廷/门多萨美国/阿根廷/Rio_Gallegos美国/阿根廷/萨尔塔美国/阿根廷/圣胡安美国/阿根廷/圣路易斯美国/阿根廷/土库曼美国/阿根廷/乌斯怀亚美洲/阿鲁巴美国/亚松森美国/阿提科坎美国/阿特卡美洲/巴伊亚美国/巴伊亚_班德拉斯美国/巴巴多斯美国/贝伦美国/伯利兹美国/Blanc-Sablon美国/Boa_Vista美国/波哥大美国/博伊西美国/布宜诺斯艾利斯美国/Cambridge_Bay美国/Campo_Grande美国/坎昆美洲/加拉加斯美洲/卡塔马卡美国/卡宴美国/开曼群岛美国/芝加哥美国/奇瓦瓦州美国/Coral_Harbour美洲/科尔多瓦美洲/哥斯达黎加美国/克雷斯顿美洲/库亚巴美洲/库拉索美国/丹麦港美国/道森美国/道森_克里克美国/丹佛美国/底特律美国/多米尼加美国/埃德蒙顿美国/欧洲美国/萨尔瓦多美国/恩塞纳达美国/韦恩堡美洲/福塔雷萨美国/Glace_Bay美国/Godthab美国/鹅湾美国/Grand_Turk美国/格林纳达美洲/瓜德罗普岛美洲/危地马拉美洲/瓜亚基尔美国/圭亚那美国/哈利法克斯美国/哈瓦那美国/埃莫西约美国/印第安纳州/印第安纳波利斯美国/印第安纳州/诺克斯美国/印第安纳州/马伦戈美国/印第安纳州/彼得堡美国/印第安纳州/Tell_City美国/印第安纳州/韦韦美国/印第安纳州/文森斯美国/印第安纳州/威纳马克美国/印第安纳波利斯美国/因纽维克美国/伊魁特美国/牙买加美国/胡胡伊美国/朱诺美国/肯塔基州/路易斯维尔美国/肯塔基州/蒙蒂塞洛美国/诺克斯_IN美国/克拉伦代克美国/拉巴斯美国/利马美国/洛杉矶如您所见,它结束得相当早,并且缺少许多时区.我试图通过更新 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 timezonepytz.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/AbidjanAfrica/AccraAfrica/Addis_AbabaAfrica/AlgiersAfrica/AsmaraAfrica/AsmeraAfrica/BamakoAfrica/BanguiAfrica/BanjulAfrica/BissauAfrica/BlantyreAfrica/BrazzavilleAfrica/BujumburaAfrica/CairoAfrica/CasablancaAfrica/CeutaAfrica/ConakryAfrica/DakarAfrica/Dar_es_SalaamAfrica/DjiboutiAfrica/DoualaAfrica/El_AaiunAfrica/FreetownAfrica/GaboroneAfrica/HarareAfrica/JohannesburgAfrica/JubaAfrica/KampalaAfrica/KhartoumAfrica/KigaliAfrica/KinshasaAfrica/LagosAfrica/LibrevilleAfrica/LomeAfrica/LuandaAfrica/LubumbashiAfrica/LusakaAfrica/MalaboAfrica/MaputoAfrica/MaseruAfrica/MbabaneAfrica/MogadishuAfrica/MonroviaAfrica/NairobiAfrica/NdjamenaAfrica/NiameyAfrica/NouakchottAfrica/OuagadougouAfrica/Porto-NovoAfrica/Sao_TomeAfrica/TimbuktuAfrica/TripoliAfrica/TunisAfrica/WindhoekAmerica/AdakAmerica/AnchorageAmerica/AnguillaAmerica/AntiguaAmerica/AraguainaAmerica/Argentina/Buenos_AiresAmerica/Argentina/CatamarcaAmerica/Argentina/ComodRivadaviaAmerica/Argentina/CordobaAmerica/Argentina/JujuyAmerica/Argentina/La_RiojaAmerica/Argentina/MendozaAmerica/Argentina/Rio_GallegosAmerica/Argentina/SaltaAmerica/Argentina/San_JuanAmerica/Argentina/San_LuisAmerica/Argentina/TucumanAmerica/Argentina/UshuaiaAmerica/ArubaAmerica/AsuncionAmerica/AtikokanAmerica/AtkaAmerica/BahiaAmerica/Bahia_BanderasAmerica/BarbadosAmerica/BelemAmerica/BelizeAmerica/Blanc-SablonAmerica/Boa_VistaAmerica/BogotaAmerica/BoiseAmerica/Buenos_AiresAmerica/Cambridge_BayAmerica/Campo_GrandeAmerica/CancunAmerica/CaracasAmerica/CatamarcaAmerica/CayenneAmerica/CaymanAmerica/ChicagoAmerica/ChihuahuaAmerica/Coral_HarbourAmerica/CordobaAmerica/Costa_RicaAmerica/CrestonAmerica/CuiabaAmerica/CuracaoAmerica/DanmarkshavnAmerica/DawsonAmerica/Dawson_CreekAmerica/DenverAmerica/DetroitAmerica/DominicaAmerica/EdmontonAmerica/EirunepeAmerica/El_SalvadorAmerica/EnsenadaAmerica/Fort_WayneAmerica/FortalezaAmerica/Glace_BayAmerica/GodthabAmerica/Goose_BayAmerica/Grand_TurkAmerica/GrenadaAmerica/GuadeloupeAmerica/GuatemalaAmerica/GuayaquilAmerica/GuyanaAmerica/HalifaxAmerica/HavanaAmerica/HermosilloAmerica/Indiana/IndianapolisAmerica/Indiana/KnoxAmerica/Indiana/MarengoAmerica/Indiana/PetersburgAmerica/Indiana/Tell_CityAmerica/Indiana/VevayAmerica/Indiana/VincennesAmerica/Indiana/WinamacAmerica/IndianapolisAmerica/InuvikAmerica/IqaluitAmerica/JamaicaAmerica/JujuyAmerica/JuneauAmerica/Kentucky/LouisvilleAmerica/Kentucky/MonticelloAmerica/Knox_INAmerica/KralendijkAmerica/La_PazAmerica/LimaAmerica/Los_AngelesSo 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 pytzBut 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中缺少时区信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-12 13:49