问题描述:
调试和命令行运行的时候工作目录不一致
这会导致一个问题,我想从上级目录导入模块的话,F5调试就会找不到模块,而命令行则没问题
那么我该如何调试呢?
目录结构:
top
└ folder_a
└ folder_b
└ b.py
测试代码:
import os dr = os.getcwd() print(dr)
F5调试输出结果:
PS C:UsersAdministratorDesktop op> cd 'c:UsersAdministratorDesktop op'; ...(省略) C:UsersAdministratorDesktop op #可以看到输出的是顶层文件目录
命令行结果:
PS C:UsersAdministratorDesktop opfolder_afolder_b> python b.py
C:UsersAdministratorDesktop opfolder_afolder_b #和期待值一样
解决方案
1.在vscode的debug设置里面(launch.json) 把路径写死,但是会造成调试其他路径下的程序找不到路径
2.改写代码
import os,sys os.chdir('./folder_a/folder_b') #F5调试的时候执行(命令行会报错),正式环境注释掉 dr = os.getcwd() print(dr)
3.vscode里单独为folder_b创建一个workspace
4.以上都是我瞎想的,应该还有更简单的方法。。。