ipy.vim脚本的问题
我正在尝试使用ipy.vim脚本来搭建一个小的Python开发环境,但遇到了连接问题。当我输入ipython_vimserver.setup("demo")时,出现了这个错误:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/pymodules/python2.6/IPython/Extensions/ipy_vimserver.py", line 109, in serve_me
self.listen()
File "/usr/lib/pymodules/python2.6/IPython/Extensions/ipy_vimserver.py", line 93, in listen
self.socket.bind(self.__sname)
File "<string>", line 1, in bind
error: [Errno 98] Address already in use
当我第二次输入时,一切都正常,但当我启动gvim时,按F4/F5键没有反应,并且显示它们无法连接到Ipython服务器。
有什么建议吗?
3 个回答
0
这个问题发生是因为你想创建的名字已经有一个套接字存在了,在这个例子中就是'demo'。你需要先把它删除,然后再进行ipy_vimserver.setup。在你的情况下,应该删除的套接字文件是 ~/.ipython/demo
(我是ipy.vim的作者之一)
0
如果我运行完全一样的代码,还是会出现同样的错误。不过如果我把名字从“demo”改成“cookies”,那就能正常运行了。奇怪啊……
0
问题:
看看堆栈跟踪的最后一行:错误:[Errno 98] 地址已在使用中
解释:
关于"地址已在使用中"
错误的详细解释可以在这里找到:"绑定:地址已在使用中"
可能的解决方案:
因为我自己没有尝试过ipy.vim
的设置,从网络的角度来看,快速建议是:
- 关闭/杀掉服务器(
ipython server
)和客户端(vim运行ipy.vim
)。 - 重启
ipython server
- 用
ipy.vim
运行vim,然后尝试调试。
附加信息:
- 在Linux/Unix机器上,超时值定义在
/proc/sys/net/ipv4/tcp_keepalive_time
和/proc/sys/net/ipv4/tcp_fin_time
中。 - 在Windows机器上,这个值设置在
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay
。更多细节可以在这里找到:TcpTimedWaitDelay