You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyCharm通过SSH远程调试tcsh服务器时出现"/: Event not found"错误

Fixing "/: Event not found" When Remote Debugging with PyCharm on tcsh Servers

我之前也碰到过一模一样的诡异问题!你猜的完全没错——这就是tcsh的历史事件替换功能在搞鬼。tcsh会把!字符默认当作调用历史命令的标记,而PyCharm生成的调试命令里刚好带了!/path/to/...这种路径格式,直接触发了这个机制,导致调试莫名其妙中断。

下面是几个亲测有效的解决方案:

方案1:强制PyCharm用bash执行调试命令

既然tcsh的特性是根源,那我们直接换个shell避开它:

  • 打开PyCharm的Settings/Preferences(Windows/Linux按Ctrl+Alt+S,Mac按Cmd+,)
  • 找到Build, Execution, Deployment > Deployment,选中你的远程服务器配置
  • 切换到Connection标签页,把Shell path从默认的/bin/tcsh改成/bin/bash(绝大多数Linux服务器都预装了bash)
  • 保存配置后重启调试,这个问题基本就能彻底解决

方案2:临时禁用tcsh的历史替换(如果必须用tcsh)

要是你因为环境限制不能换shell,可以临时关掉tcsh的历史替换功能:

  • 在远程服务器的tcsh终端里执行命令:set noglob
  • 这个命令会禁用包括历史事件替换在内的通配符扩展,之后再启动PyCharm调试会话,就不会触发/: Event not found错误了
  • 要是想永久生效,把set noglob添加到你的~/.tcshrc配置文件里就行

方案3:微调PyCharm调试配置(进阶)

偶尔PyCharm生成的命令格式也会触发tcsh的敏感解析,你可以手动调整:

  • 打开Run/Debug Configurations,找到你的远程调试配置
  • 在Configuration标签页里,确保Script path用的是完整绝对路径,尽量避免路径里出现特殊字符
  • 还可以在Environment variables里新增SHELL=/bin/bash,强制让调试进程用bash执行

至于问题时好时坏的诡异现象,大概率是tcsh的历史缓存偶尔没匹配到对应事件,所以没触发错误,但本质还是历史替换的锅,上面的方案应该能彻底解决。

内容的提问来源于stack exchange,提问作者Evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:41:09