我正在尝试按照本指南“https://code.google.com/p/websocket-sample/wiki/HowToInstallMod_pywebsocket”
在CentOS 5.9 32位上安装“mod_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(
这是什么意思?我该怎么做?
答案 0 :(得分:0)
问题是mux.py
中使用的语法在Python 2.4中不起作用。正如当前Python 2 Language Reference所述:
在2.5版中更改:在以前的Python版本中,
try...except...finally
没有用。try...except
必须嵌套在try...finally
。
我的猜测是mod_pywebsockets
中的代码自上次使用CentOS上的Python 2.4进行HowTo
测试后发生了变化。您可以查看修补代码以避免try...except...finally
或搜索mod_pywebsockets
代码库以查找可与Python 2.4一起使用的早期版本,或者您可以安装并使用较新版本的Python 2(Python 2.7.5是当前的)与Python 2.4系统一起。