zoukankan      html  css  js  c++  java
  • [vscode] os.getcwd(),调试和命令行运行的结果不一致

    问题描述:

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

    这会导致一个问题,我想从上级目录导入模块的话,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.以上都是我瞎想的,应该还有更简单的方法。。。

  • 相关阅读:
    JVM调优--常用JVM监控工具使用
    jvm启动常用参数配置
    公钥和私钥原理
    tcp三次握手四次挥手
    内存泄漏和内存溢出
    hashmap解析
    Visual C++ 6.0 断点调试记录
    C++中输入一组不确定长度的数
    异或
    NULL与nullptr
  • 原文地址:https://www.cnblogs.com/remly/p/11531095.html
Copyright © 2011-2022 走看看