2010-04-28 50 views
4

我有一個奇怪的,煩人的Python 2.6問題。我試圖在我的嵌入式Linux ARM板上運行這個文件(和另一個文件)。 http://svn.tuxisalive.com/software_suite_v3/smart-core/smart-server/trunk/TDSService.pyAscii文件中的Python BOM錯誤

我得到這個錯誤:

File "tuxhttpserver.py", line 1 SyntaxError: encoding problem: with BOM

我知道錯誤是關於BOM字節等等等等,但是,有沒有BOM字節,它是純ASCII。我檢查了一個Hexeditor,並且linux File命令說明了它的Ascii。

我在這裏嚇到了......代碼在我的Sheevaplug(也是基於ARM的系統)上工作得很好。

回答

10

不要太過於掛在「與BOM」的評論。這可能不相關。這個錯誤通常意味着你試圖運行的Python不支持你聲明的編碼。觀察:

% head -1 tmp.py 
# -*- coding: asdfasdfasdf -*- 
% python tmp.py 
    File "tmp.py", line 1 
SyntaxError: encoding problem: with BOM 

您在此嵌入式Linux ARM板上運行的Python安裝可能缺少'latin-1'編碼。由於源文件中沒有任何非ASCII字符,只需將編碼聲明爲'ascii',或者完全省略編碼。

+0

如果我將Latin1更改爲ascii,則沒有區別。如果我刪除該行,我會得到相同的錯誤,但是在「導入版本」行中。 – JustFogMaxi 2010-04-28 12:36:58

+2

然後我猜你運行的Python安裝有*沒有任何編碼*。你在'import version'行上得到錯誤的事實可能意味着'version'模塊也有一個編碼頭。我會投入一些時間來使這個Python安裝至少有一些*編碼。 – 2010-04-28 12:40:14

+0

這似乎不再是最近的Python發行版的正確答案(因爲此處給出的特定編碼頭現在報告* SyntaxError:encoding problem:asdfasdfasdf *,** without the BOM claim)。只有在編碼頭沒有寫出「utf-8」,但是存在UTF-8 BOM時,纔會出現錯誤消息。 – 2016-08-06 19:50:41