Ошибка при установке Poster (модуль Python)
-
21-09-2019 - |
Вопрос
Я пытаюсь установить Библиотека плакатов 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?