2010-04-28 7 views
4

저는 Python 2.6에서 이상하고 성가신 문제가 있습니다. 내 임베디드 리눅스 ARM 보드에서이 파일 (및 다른 파일)을 실행하려고한다. 내가 그 오류가 BOM 바이트 등 등에 대해 알고하지만, NO BOM 바이트가없는, 그것은 일반 ASCII의Ascii 파일의 Python BOM 오류

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

: http://svn.tuxisalive.com/software_suite_v3/smart-core/smart-server/trunk/TDSService.py

나는이 오류가 발생합니다. 나는 Hexeditor를 점검했고 linux File 명령은 Ascii를 말한다.

여기에서 놀랍다. 코드는 내 Sheevaplug (ARM 기반 시스템)에서 정상적으로 작동했습니다.

답변

10

"with BOM"발언에 너무 신경 쓰지 마십시오. 그것은 아마도 관련이 없습니다. 이 에러가 보통 의미하는 것은 여러분이 실행하려고하는 파이썬이 여러분이 선언 한 인코딩을 지원하지 않는다는 것입니다. 관찰 :

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

이 임베디드 리눅스 ARM 보드에서 실행중인 Python 설치에는 'latin-1'인코딩이 없을 수 있습니다. 소스 파일에 비 ASCII 문자가 없으므로 인코딩을 'ascii'로 선언하거나 인코딩을 생략하십시오.

+0

Latin1을 ascii로 변경하면 아무런 차이가 없습니다. 줄을 제거하면 '가져 오기 버전'줄에 같은 오류가 표시됩니다. – JustFogMaxi

+2

그럼 내가 실행하는 파이썬 설치는 * 전혀 인코딩이 안된다고 생각합니다. 'import version'라인에 오류가 있다는 사실은 아마도 'version'모듈에 인코딩 헤더가 있다는 것을 의미합니다. 이 Python 설치에서 적어도 * 일부 * 인코딩을 작동 시키려면 시간을 투자 할 것입니다. –

+0

이것은 더 이상 최신 Python 릴리스에 대한 정답이 아닙니다. 여기에서 샘플로 제공된 특정 코딩 헤더가 BOM 소유권 주장없이 * SyntaxError : encoding 문제 : asdfasdfasdf * ** **를보고합니다. 오류 메시지는 코딩 헤더가 'utf-8'을 표시하지 않지만 UTF-8 BOM이있는 경우에만 발생합니다. –