[vscode] os.getcwd(),调试和命令行运行的结果不一致

问题描述:

调试和命令行运行的时候工作目录不一致

这会导致一个问题,我想从上级目录导入模块的话,F5调试就会找不到模块,而命令行则没问题

那么我该如何调试呢?

目录结构:

top
  └ folder_a
      └ folder_b
           └ b.py

测试代码:

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.改写代码

import os,sys
os.chdir('./folder_a/folder_b') #F5调试的时候执行(命令行会报错),正式环境注释掉
dr = os.getcwd()
print(dr)

3.vscode里单独为folder_b创建一个workspace

4.以上都是我瞎想的,应该还有更简单的方法。。。

转载于:https://www.cnblogs.com/remly/p/11531095.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值