Ошибка спецификации Python в файле Ascii

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

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

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

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

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


person Sugarel    schedule 28.04.2010    source источник


Ответы (1)


Не зацикливайтесь на примечании «со спецификацией». Наверное, это не актуально. Эта ошибка обычно означает, что 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 или вообще оставьте кодировку.

person Thomas Wouters    schedule 28.04.2010
comment
Если я изменю Latin1 на ascii, это не имеет значения. Если я удалю строку, я получу ту же ошибку, но в строке «Импорт версии». - person Sugarel; 28.04.2010
comment
Тогда я предполагаю, что установка Python, на которой вы работаете, не имеет каких-либо кодировок. Тот факт, что вы получаете сообщение об ошибке в строке «import version», вероятно, означает, что модуль «version» также имеет заголовок кодировки. Я бы потратил некоторое время на то, чтобы хотя бы некоторые кодировки работали в этой установке Python. - person Thomas Wouters; 28.04.2010
comment
Это, похоже, больше не является правильным ответом для последних выпусков Python (в том смысле, что конкретный заголовок кодирования, приведенный здесь в качестве образца, теперь сообщает о SyntaxError: проблема кодирования: asdfasdfasdf, без Заявление о спецификации). Сообщение об ошибке появляется только в том случае, если заголовок кодирования не указывает utf-8, но присутствует спецификация UTF-8. - person Martijn Pieters; 06.08.2016