python在Trae(vscode)输出窗口乱码的解决方案

最近在使用Trae CN代替vscode编写python程序,Trae 是字节跳动发布的 AI 原生集成开发环境工具,它是基于vscode进行二次开发的。
我使用它的目的是一个是因为是国产的IDE,值得一试,另外一方面,它还是有一些我喜欢的特点,比如代码彩色渲染比较符合我的审美。
但是在使用过程中出现了输出窗口乱码的问题,通过AI和网上搜索,也没有找到很好的解决办法。
后来摸索出一个还可以接受的解决方案,只需要在python中添加代码即可:

import sys
sys.stdout.reconfigure(encoding='utf-8')  # 关键代码,修改输出通道编码格式
print(f"默认编码: {sys.getdefaultencoding()}")  # 显示python的默认编码格式
print(f"标准输出编码: {sys.stdout.encoding}")  # 显示输出通道的编码格式

如果出现乱码,可以查看默认编码格式和输出编码格式是否一样,如果不一样,设置为相同的编码格式就可以了。

终于找到更理想的解决方案了:

  • 打开 VS Code 设置 (Ctrl+, 或 Cmd+,)
  • 搜索 code-runner.executorMap
  • 点击 "Edit in settings.json"
  • 添加 Python 配置:
"code-runner.executorMap": {
    // "python": "python -u $fullFileName",
    // 添加 PYTHONPATH 支持
    "python": "set PYTHONPATH=$workspaceRoot && set PYTHONIOENCODING=utf8 && python -u $fullFileName"

通过set PYTHONIOENCODING=utf8:强制 Python 使用 UTF-8 输出。这样输出就不会出现乱码了,也不用在python脚本中做额外的设置了。

BTW,set PYTHONPATH=$workspaceRoot也非常有用,它会强制把当前的工程目录添加到python path目录中,这样工程中的模块之间就可以互相引用单独调试了,不会出现必须在工程根目录下才能够运行的问题了。

  • 再补充
    后来Trae版本升级了,不知道为什么set PYTHONPATH=$workspaceRoot不起作用了。通过摸索查找,发现同样的配置文件中,只要统计下面的代码就可以了:
  "terminal.integrated.env.windows": {
    "PYTHONIOENCODING": "utf-8",
    "PYTHONUTF8": "1",
    "PYTHONPATH": "${workspaceFolder}",  // 关键语句
  },
  • 再再补充
    如果执行ipynb文件,设置工作目录为项目根目录而不是当前文件目录,在设置中搜索jupyter.notebookFileRoot,然后修改其值为${workspaceFolder}即可.
posted @ 2025-07-10 09:44  顺其自然,道法自然  阅读(882)  评论(0)    收藏  举报