1. 背景
在项目的一些程序中会使用相对路径,如从数据目录中加载数据或写入日志parser.add_argument('--log_path', default='log/train.log', type=str, required=False, help='训练日志存放位置')
我们通常会直接使用相对路径,但是在用vs code直接运行脚本时会报错FileNotFoundError: [Errno 2] No such file or directory: './xxx.py'
2. 原因
vs code默认是将项目的root路径作为当前所在的路径,如图所示有一个CPM项目,假设CPM项目所在的路径为/code/pro/CPM/
,当运行train.py文件时,vs code默认将/code/pro/
作为当前文件所在的目录,因此在train.py中将日志路径设置为./log/train.log
将会出现找不到路径的错误
3. 解决方法
点击debug后,如图所示,点击设置按钮进入launch.json
文件中
在launch.json中添加配置
"cwd": "${fileDirname}"
如下图所示
将鼠标放在cwd
上可以看出cwd
就是设置程序被调试时的绝对路径