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}即可.
浙公网安备 33010602011771号