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