Python版本上下文中的ProtocolConnectionException

2024-04-29 18:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全不熟悉Python,但我有一段代码需要修改。它来自sublimetext2的SublimeXdebug插件,这是唯一一个用Sublime Text调试PHP的插件。这个插件是用Python编写的,更确切地说,是用python2.6或更早版本编写的,而运行插件的系统(ubuntu12.04)只支持Python>;=2.7。然而,插件/崇高文本开发人员似乎设法“模拟”了Python2.6,因为当我在插件代码中插入print sys.version时,它会报告Python 2.6.6。它本可以帮助其他一些插件,但不能帮助SublimeXdebug:

Traceback (most recent call last):
  File ".\threading.py", line 532, in __bootstrap_inner
  File ".\threading.py", line 484, in run
  File "./Xdebug.py", line 321, in thread_callback
    protocol.accept()
  File "./Xdebug.py", line 137, in accept
    raise(ProtocolConnectionException, x)
ProtocolConnectionException

有问题的代码(可能不是唯一的一段)是这样的:

^{pr2}$

(对于那些建议在.deb中下载2.6版本的Python,将其解包,然后将usr/lib/python2.6移到{}中的人来说,我已经尝试过了,但没有帮助。)

那么问题的根源可能是Python版本不匹配还是其他原因?在

编辑:

如果我把第137行改为raise,它会说:

Traceback (most recent call last):
  File ".\threading.py", line 532, in __bootstrap_inner
  File ".\threading.py", line 484, in run
  File "./Xdebug.py", line 321, in thread_callback
  File "./Xdebug.py", line 132, in accept
  File "<string>", line 1, in bind
error: [Errno 98] Address already in use

第132行是serv.bind(('', self.port))。在


Tags: 代码inpy版本插件mostlinecall
1条回答
网友
1楼 · 发布于 2024-04-29 18:51:50

我怀疑这个Python版本的东西是一个红鲱鱼。这段代码试图监听一个TCP端口(不管self.port是什么),但是有其他东西已经在那里监听了。在Linux上,您可以运行sudo netstat -anp | grep LISTEN来确定这是什么进程。在

相关问题 更多 >