Вопрос

Я пытаюсь установить Библиотека плакатов Python Криса Атли поэтому я могу загрузить файл с помощью запроса HTTP POST из моего скрипта.

На Python 2.3, когда я печатаю # python setup.py install, я получаю следующую ошибку.Установка продолжается, но я не могу >>> import poster позже.

byte-compiling build/bdist.linux-x86_64/egg/poster/encode.py to encode.pyc
  File "build/bdist.linux-x86_64/egg/poster/encode.py", line 112
    @classmethod
    ^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/poster/streaminghttp.py to streaminghttp.pyc
  File "build/bdist.linux-x86_64/egg/poster/streaminghttp.py", line 114
    newheaders = dict((k,v) for k,v in req.headers.items()
                              ^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/poster/__init__.py to __init__.pyc

Есть какие-нибудь указатели?

Это было полезно?

Решение

В Python 2.3 не было поддержки декораторов (это то, что есть @classmethod) или понимания списков (что является второй ошибкой), поэтому вам придется либо найти более старую версию Poster, либо придерживаться urllib/urllib2 для выполняете свою HTTP-работу.

На самом деле, похоже, что Poster был создан где-то в июле 2008 года, поэтому вряд ли появится версия, поддерживающая Python 2.3, даже если вы сможете найти первоначальный исходный код.Есть ли какая-то конкретная причина, по которой вы не можете обновиться хотя бы до последней версии Python 2.x?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top