Ошибка спецификации Python в файле Ascii - PullRequest
4 голосов
/ 28 апреля 2010

У меня странная, раздражающая проблема с Python 2.6. Я пытаюсь запустить этот файл (и другой) на моей плате Embedded Linux ARM. http://svn.tuxisalive.com/software_suite_v3/smart-core/smart-server/trunk/TDSService.py

Я получаю эту ошибку:

Файл "tuxhttpserver.py", строка 1 Ошибка синтаксиса: проблема кодирования: с BOM

Я знаю, что ошибка связана с байтами спецификации и т. Д., Но НЕТ байтов спецификации, это просто Ascii. Я проверил с помощью Hexeditor, и команда Linux-файла говорит, что это Ascii.

Я тут волнуюсь ... Код отлично работал на моем Sheevaplug (также системе на основе ARM).

1 Ответ

10 голосов
/ 28 апреля 2010

Не зацикливайтесь на замечании "с спецификации". Это наверное не актуально. Обычно эта ошибка означает, что Python, на котором вы пытаетесь запустить, не поддерживает кодировку, которую вы объявляете. Обратите внимание:

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

Установке Python, которую вы используете на этой плате Embedded Linux ARM, вероятно, не хватает кодировки 'latin-1'. Поскольку в исходном файле нет символов, отличных от ASCII, просто объявите кодировку как «ascii» или вообще не указывайте кодировку.

...