在linux终端命令行跳转到脚本所在目录,可以用python ***.py运行,但是无法单步调试。
原因:在vscode中,默认将工作区作为当前工作目录,所以工作区下子目录中的python文件再尝试使用相对路径打开文件时,会找不到文件。(这篇文章实例很清晰)
参考这篇超全的文章
在命令行中运行 py 文件,工作目录取决于当前命令行所在的目录,由于通常我们会将命令行 cd 到 py文件 同目录下(这样没有执行的时候不需要敲一堆路径,python src/bala/bala/program.py 之类的),工作目录就与 py文件 同目录,生成的文件自然在这个目录下
如果从 vscode 中启动,如果没有修改 launch.json 中的 cwd 的值,默认以 “${workspaceFolder}” 作为工作目录(项目根目录),所以相对路径的起点也要从这个目录开始。
解决方案:
在代码中加入这两行
import os, sys
os.chdir(sys.path[0])