繁体   English   中英

VSCode Python - 调试 package

[英]VSCode Python - Debug package

我遇到了一个暂时无法解决的问题,当谈到使用 VScode 调试包时,我觉得这是一个微不足道的问题。 当我有一个复杂的项目时,我设置了一个 setup.py 文件并创建了一个 package,我在我的 package 内部使用这个 package 来引用不同的模块。 例如:

.
└── project_root
    ├── module1
    │   ├── f1.py
    │   ├── f2.py
    │   └── __init__.py
    ├── module2
    │   ├── f1.py
    │   ├── f2.py
    │   └── __init__.py
    └── module3
        ├── f1.py
        ├── f2.py
        └── __init__.py

############# IMPORTING CLASSES/METHODS ##################
### for example inside modules3.f1:
from project_root.module1.f2 import some_class

我总是使用虚拟环境。 如果我使用pip install. 文件的导入按预期工作。 不幸的是,当涉及到调试时,它只会尊重我的虚拟环境<virtual env name>/lib64/python3.8/site-packages/<package_name>中文件的断点,而不是我正在处理的文件的断点在project_root中。

所以我基本上有两个问题:

a) 有没有办法告诉 VSCode 使用我的 <project_root> 文件而不是虚拟环境 package 用于我的 package?

b)我正在创建一个 package 因为否则,我在引用父目录中的文件时遇到问题。 有没有比立即设置setup.py并最终解决我的调试问题更好的方法来创建复杂的代码结构?

我的 VScode launch.json设置如下:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",
            "args": ["-d"],
            "justMyCode":false  
            // add env
            "env": {
                "MODE": "True"
            }
        }
    ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM