ipy.vim脚本的问题

2 投票
3 回答
566 浏览
提问于 2025-04-16 16:40

我正在尝试使用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

撰写回答