我正试图按照本指南在CentOS 5.9 32位上安装"mod_pywebsocket"https://code.google.com/p/websocket-sample/wiki/HowToInstallMod_pywebsocket"
但是使用命令"sudo python setup.py install",我看到一个错误:
[root@localhost src]# python setup.py install
running install
running build
running build_py
running install_lib
byte-compiling /usr/lib/python2.4/site-packages/mod_pywebsocket/mux.py to mux.pyc
File "/usr/lib/python2.4/site-packages/mod_pywebsocket/mux.py", line 926
finally:
^
SyntaxError: invalid syntax
[root@localhost src]#
这里有几行"mux.py"文件:
916 Writing data will block the worker so we need to release
# _send_condition before writing.
self._logger.debug('Sending inner frame: %r' % inner_frame)
self._request.connection.write(inner_frame)
write_position += write_length
opcode = common.OPCODE_CONTINUATION
except ValueError, e:
raise BadOperationException(e)
926 finally:
self._write_inner_frame_semaphore.release()
def replenish_send_quota(self, send_quota):
"""Replenish send quota."""
try:
self._send_condition.acquire()
if self._send_quota + send_quota > 0x7FFFFFFFFFFFFFFF:
self._send_quota = 0
raise LogicalChannelError(
这是什么意思?我该怎么办?
问题是mux.py
中使用的语法在Python 2.4中不起作用。如当前Python 2语言参考:中所述
在版本2.5中更改:在以前版本的Python中,
try...except...finally
不起作用。try...except
必须嵌套在try...finally
。
我的猜测是mod_pywebsockets
中的代码自从HowTo
上一次在CentOS上使用Python 2.4进行测试以来已经发生了变化。您可以考虑修补代码以避免try...except...finally
,或者搜索mod_pywebsockets
代码库以找到与Python 2.4兼容的早期版本,或者您可以在系统Python 2.4的同时安装并使用较新版本的Python 2(Python 2.7.5是当前版本)。