2013-11-21 36 views
1

我有這個問題,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作爲一個魅力。

+1

您確定兩個帳戶都使用同一個圖書館嗎?似乎pytz安裝在用戶的主目錄中,所以如果你在不同的帳戶下運行它,它可能會使用不同的安裝。 – exfizik

+1

比較'import pytz的輸出;在兩個安裝中打印pytz .__ file__'。他們可能不一樣。 – VooDooNOFX

+1

或者,如果它們相同,帳戶#1是否可以讀取帳戶#0的'site-packages'中的所有文件?這可能是因爲'pytz'沒有讀取它的數據庫文件,只是沒有報告錯誤,因爲它可能有... – abarnert

回答

1

這是發生了什麼:

我更新了我的問題後,我發現這個問題是與Python打開一個二進制文件。一位朋友告訴我檢查我用來發送文件到服務器(Filezila)的軟件,並且有三種類型的傳輸:ASCII,二進制或自動。該軟件被設置爲自動。我在二進制傳輸模式下再次發送二進制文件,它工作。

相關問題