[英]Error on Pytz - IndexError: list index out of range
我在ptyz中遇到了这个问题:
>>> import pytz
>>> pytz.timezone('US/Mountain')
Traceback (most recent call last):
File "stdin", line 1, in module
File "/home/user/.local/lib/python2.6/site-packages/pytz-2013b-py2.6.egg/pytz/__init__.py", line 181, in timezone
_tzinfo_cache[zone] = build_tzinfo(zone, fp)
File "/home/user/.local/lib/python2.6/site-packages/pytz-2013b-py2.6.egg/pytz/tzfile.py", line 78, in build_tzinfo
while ttinfo[i][1]:
IndexError: list index out of range
我在服务器中有两个帐户,并且有两个不同的pytz安装,尽管它们是彼此的副本。 在其中一个中,pytz充当了一种魅力,但在另一个中,我有此错误。 它看起来像是ptyz内部的错误,但不能这样,因为pytz在其他帐户中可以正常工作。
有没有人在此之前处理过这个问题,或者不知道可能是什么原因造成的?
更新:
仅当页面调用脚本时才会发生此错误,而这恰好是最后一条消息:
build_tzinfo(zone='US/Michigan', fp=<closed file '/home/user/.local/lib/python2...e-packages/pytz/zoneinfo/US/Michigan', mode 'rb'>)
而fp
是init .py内部的一个变量,它只接收它:
open(filename, 'rb')
似乎已找到文件,但未真正打开文件。 我在http://docs.python.org/2/tutorial/inputoutput.html上发现,Linux和Windows在查看二进制文件的方式上存在差异。 我的服务器运行Linux,并且在另一个帐户上,同样的安装方式,pytz很有魅力。
那就是发生的事情:
更新问题后,我发现问题出在python打开二进制文件。 一位朋友告诉我检查用于将文件发送到服务器的软件(Filezila),并且有三种传输类型:ASCII,二进制或自动。 该软件设置为“自动”。 我再次以二进制传输模式发送二进制文件,并且它起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.