Python arrow包时区错误?

Python arrow包时区错误?,python,python-2.7,registry,windows-7-x64,python-dateutil,Python,Python 2.7,Registry,Windows 7 X64,Python Dateutil,我正在Windows 7中运行python 2.7中的以下代码,并收到一个错误: import arrow timeNow = arrow.utcnow() print timeNow timePST = timeNow.to('US/Pacific') timeMST = timeNow.to('US/Mountain') 错误: Traceback (most recent call last): File "C:\Users\flann\Dropbox\Personal\Googl

我正在Windows 7中运行python 2.7中的以下代码,并收到一个错误:

import arrow

timeNow = arrow.utcnow()
print timeNow
timePST = timeNow.to('US/Pacific')
timeMST = timeNow.to('US/Mountain')
错误:

Traceback (most recent call last):
  File "C:\Users\flann\Dropbox\Personal\GoogleTrendsFutures\pythonCode\testBug.py", line 5, in <module>
    timePST = timeNow.to('US/Pacific')
  File "C:\Python27\lib\site-packages\arrow\arrow.py", line 456, in to
    tz = parser.TzinfoParser.parse(tz)
  File "C:\Python27\lib\site-packages\arrow\parser.py", line 295, in parse
    tzinfo = tz.gettz(string)
  File "C:\Python27\lib\site-packages\dateutil\tz.py", line 963, in gettz
    tz = tzwin(name)
  File "C:\Python27\lib\site-packages\dateutil\tzwin.py", line 84, in __init__
    tzkey = winreg.OpenKey(handle, "%s\%s" % (TZKEYNAME, name))
WindowsError: [Error 2] The system cannot find the file specified
回溯(最近一次呼叫最后一次):
文件“C:\Users\flann\Dropbox\Personal\GoogleTrendsFutures\pythonCode\testBug.py”,第5行,在
timePST=timeNow.to('US/Pacific')
文件“C:\Python27\lib\site packages\arrow\arrow.py”,第456行,在to中
tz=parser.TzinfoParser.parse(tz)
文件“C:\Python27\lib\site packages\arrow\parser.py”,第295行,在parse中
tzinfo=tz.gettz(字符串)
文件“C:\Python27\lib\site packages\dateutil\tz.py”,第963行,在gettz中
tz=tzwin(名称)
文件“C:\Python27\lib\site packages\dateutil\tzwin.py”,第84行,在\uuu init中__
tzkey=winreg.OpenKey(句柄,“%s\%s”%(TZKEYNAME,name))
WindowsError:[错误2]系统找不到指定的文件
奇怪的是,代码在我的另一台windows机器上运行得很好。我感觉该错误是时区注册表配置错误,但我尝试过: 这永远不会回来


任何帮助都将不胜感激

tzwin.py如果传入的字符串与Windows注册表项不对应,则抛出错误。要查看有效字符串,请将其粘贴到命令shell中:

reg.exe查询“HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones”

我打赌,如果你在两台机器上都运行它,你会看到一台工作的机器上有一个“US/Pacific”,一台失败的机器上有一个“Pacific Standard Time”。试试这个:

timePST=timeNow.to('Pacific Standard Time')

因此,降级到dateutil 2.2(
pip install python dateutil==2.2
)可以解决问题