首页 > 解决方案 > PEP 符合模块调试

问题描述

我的一般问题如下:我有一个包含两个模块的包,其中一个使用另一个模块,我想调试该模块。这里有一个简短的例子:

main.py
package1/
    __init__.py
    module1.py
    module2.py

问题从cannot perform relative import错误开始,我在 Python 3 中通读了这个相对导入。第一个 awnser 的示例正在运行,但它们本身存在一些问题。我正在使用启用了 pylint 所有警告、错误、提示等的 VSC,并尝试修复所有这些问题。

示例 1

如果模块是唯一的from module2 import class_name,则使用直接调用可以正常工作,但会导致 pylance 无法找到它并对其进行 linting 的问题。

示例 2

将其放在路径上会导致另一个问题,从而导致 pep 警告。因此,如果导入不在文件顶部,pep 不喜欢它。

import sys
import os

PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))

from package1.module2 import class_name

我在找什么

所以在我看来,

if __name__ == "__main__":
    class_name()

模块内部是一种反模式,但是非常容易调试模块的好方法。创建此结构并消除警告的正确方法是什么?我应该删除模块内的类调用并为它们创建调试脚本吗?

标签: pythondebuggingvisual-studio-codemodulepylint

解决方案


推荐阅读