Python arrow包时区错误?

标签 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\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

奇怪的是,代码在我的另一台 Windows 机器上运行得很好。我感觉该错误是时区注册表配置错误,但我尝试过: http://support.microsoft.com/KB/2863058 这永远不会返回

任何帮助将不胜感激!

最佳答案

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

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

我敢打赌,如果您在两台机器上运行它,您会看到工作的机器上有“美国/太平洋”,而失败的机器上有“太平洋标准时间”。试试这个:

timePST = timeNow.to('太平洋标准时间')

关于Python arrow包时区错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27532579/

相关文章:

python - Pandas 中的切片和副本有什么区别?

Python:从数据框中删除字典中不存在值的行

python-2.7 - Python 脚本被 SIGKILL 终止而不是抛出 MemoryError

python - pygame 的问题

python - PyQt4:从字典动态创建许多按钮

windows-mobile - Windows CE 注册表设置 - 从不关机

python - 在 Python 3 中使用 XPath 解析 XML

python - 使用 python 拟合经验分布

python - 保持 cmd.exe 打开

c# - RegistryKey.GetSubKeyNames 返回不在该子项中的名称!