VS Code终端异常:执行命令自动打开特定文件(WSL2 Ubuntu20.04)
WSL2 Ubuntu 20.04下VS Code执行命令自动打开脚本文件的解决办法
在WSL2的Ubuntu 20.04系统中使用VS Code时,执行任意命令都会自动打开对应的Python启动脚本文件:
- 执行
pip freeze时,会打开以下内容的文件:
#!/home/leonardofr/documents/api_flask/flask-project/project/venv/bin/python3 # -*- coding: utf-8 -*- import re import sys from pip._internal.cli.main import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(main())
- 执行
flask run时,会打开另一个脚本文件,内容如下:
#!/home/leonardofr/documents/api_flask/flask-project/project/venv/bin/python3 # -*- coding: utf-8 -*- import re import sys from flask.cli import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(main())
原因分析及解决步骤
1. 修正VS Code终端关联设置
这是最常见的原因——VS Code错误地将脚本执行关联为打开文件而非运行命令:
- 按
Ctrl+,打开设置,搜索terminal.integrated.defaultProfile.linux,确认选中的是WSL对应的bash或zsh终端。 - 搜索
terminal.external.linuxExec,确保路径指向正确的终端程序(如/bin/bash)。
2. 检查虚拟环境脚本的权限与合法性
虚拟环境中的pip、flask都是指向上述脚本的软链接,可能存在权限或路径问题:
- 在WSL终端执行
ls -l /home/leonardofr/documents/api_flask/flask-project/project/venv/bin/pip,确认软链接指向正确,且文件权限包含可执行位(权限列有x)。若无执行权限,运行chmod +x /home/leonardofr/documents/api_flask/flask-project/project/venv/bin/pip(同理处理flask脚本)。 - 确认脚本第一行的shebang路径正确,指向虚拟环境内的Python解释器,无拼写错误。
3. 重置VS Code终端配置
若设置无效,可重置终端相关配置:
- 点击设置页面右上角的
打开设置(JSON),删除所有terminal开头的自定义配置,保存后重启VS Code。 - 或按
Ctrl+Shift+P打开命令面板,执行Terminal: Reset Terminal,重启终端后测试。
4. 更新WSL扩展并重新加载项目
确保VS Code的WSL集成正常:
- 按
Ctrl+Shift+X打开扩展面板,更新Remote - WSL扩展至最新版本。 - 关闭VS Code,在WSL终端运行
code .重新打开项目,再次测试命令。
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

