我有這個問題,ptyz:錯誤的Pytz - IndexError:列表索引超出範圍
>>> 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在其他帳戶中工作正常。
有沒有人處理過這個befor或有任何想法可能會導致此?
更新:
此錯誤只發生在腳本由頁面調用,這是確切的最後一條消息:
build_tzinfo(zone='US/Michigan', fp=<closed file '/home/user/.local/lib/python2...e-packages/pytz/zoneinfo/US/Michigan', mode 'rb'>)
和fp
裏面初始化的.py變量剛剛收到它:
open(filename, 'rb')
看來fil e被發現,打開,但並未真正打開。我在http://docs.python.org/2/tutorial/inputoutput.html發現,在他們看到二進制文件的方式上,linux和windows之間存在差異。我的服務器運行Linux,並在另一個帳戶上運行,同樣的安裝,pytz作爲一個魅力。
您確定兩個帳戶都使用同一個圖書館嗎?似乎pytz安裝在用戶的主目錄中,所以如果你在不同的帳戶下運行它,它可能會使用不同的安裝。 – exfizik
比較'import pytz的輸出;在兩個安裝中打印pytz .__ file__'。他們可能不一樣。 – VooDooNOFX
或者,如果它們相同,帳戶#1是否可以讀取帳戶#0的'site-packages'中的所有文件?這可能是因爲'pytz'沒有讀取它的數據庫文件,只是沒有報告錯誤,因爲它可能有... – abarnert