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

VSCode编辑Python脚本破坏shebang导致WSL执行报错求解

你遇到的报错核心是换行符格式不兼容:Windows默认用CRLF(\r\n)作为行尾结束符,而WSL的Linux环境仅识别LF(\n)作为行尾,报错里的^M就是未被识别的回车符\r,会被系统算入shebang指定的解释器路径里,导致找不到对应程序。

解决方法

1. 全局设置VSCode默认行尾符为LF

  • 打开VSCode设置,搜索files.eol
  • 将下拉选项从默认的auto改为\n
  • 之后所有新建的文件都会默认使用Linux兼容的LF换行符

2. 针对已有项目单独设置换行符

如果不想全局修改所有文件的换行规则,可以给单个项目配置:

  • 在项目根目录新建.vscode/settings.json文件
  • 添加如下配置:
{
    "files.eol": "\n"
}
  • 该配置仅对当前项目生效,优先级高于全局设置

3. 修改当前打开文件的换行符

针对已经被改成CRLF的现有脚本,可以直接在VSCode界面一键切换:

  • 点击VSCode底部状态栏右侧显示的CRLF按钮
  • 在弹出的选项中选择LF即可,保存文件后修改生效

4. 批量修复WSL中已有文件的换行符

如果有大量已经被改成CRLF的脚本,可以在WSL终端中用dos2unix工具批量转换:

  • 先安装工具:sudo apt install dos2unix
  • 转换单个文件:dos2unix marshal.py
  • 批量转换当前目录所有py文件:dos2unix *.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:10