私はPythonにまったく慣れていませんが、修正する必要のあるコードがあります。これは、Sublime Text 2用のSublimeXdebugプラグインからのものです。これは、SublimeTextを使用したPHPデバッグ用の唯一のプラグインです。プラグインはPythonで記述されており、より具体的にはPython 2.6以前で記述されていますが、プラグインが実行されるシステム(Ubuntu 12.04)はPython>=2.7のみをサポートします。print sys.version
ただし、プラグイン/ Sublime Textの開発者は、プラグインのコードに挿入すると報告されるため、どういうわけかPython2.6を「エミュレート」できたよう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
問題のあるコード(おそらく1つだけではない)は次のようになります。
def accept(self):
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if serv:
try:
serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serv.settimeout(1)
serv.bind(('', self.port))
serv.listen(1)
self.listening = True
self.sock = None
except Exception, x:
raise(ProtocolConnectionException, x) # line 137 <------------
while self.listening:
try:
self.sock, address = serv.accept()
self.listening = False
except socket.timeout:
pass
if self.sock:
self.connected = True
self.sock.settimeout(None)
else:
self.connected = False
self.listening = False
try:
serv.close()
serv = None
except:
pass
return self.sock
else:
raise ProtocolConnectionException('Could not create socket')
(2.6バージョンのPythonを.debにダウンロードし、解凍してからに移動することをお勧めする人のためusr/lib/python2.6
に{sublime text folder}/lib
、私はすでに試しましたが、役に立ちませんでした。)
では、問題の根本は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))
です。