Python 相对导入可跳过 VSCode 中的中间文件夹

问题描述 投票:0回答:1

我正在尝试理解其他人的混合语言存储库中的代码(大型复杂代码库的一部分)。目录结构是这样的:

module_A/
    python/
        __init__.py
        script_A.py
        script_B.py
    other/
        other_scripts.cxx

__init__.py
的内容是

__version__ = '1.0.0'

代码具有从

script_B.py
script_A.py
的相对导入,如下所示:

from module_A import script_B

请注意,中间目录

python
已被跳过。我知道代码运行起来,所以python本身解析这个import语句没有问题。然而,在 VSCode 中,pylint 却出现了问题:

No name 'script_B' in module 'module_A'

我真的很想解决这个错误,以便 (a) 我可以使用 VSCode 工具来帮助自己理解代码的工作原理(例如,悬停时的函数定义)以及 (b) 我将来可以更轻松地为代码做出贡献(例如,使用代码自动完成功能)。

有人可以解释一下以下内容吗?

  1. 这是怎么回事?我以前从未在 python 中见过跳过中间目录的相对导入。

  2. 如何解决 VSCode 中的错误以恢复常用的生活质量工具?

python visual-studio-code python-import python-module relative-import
1个回答
0
投票

script_A.py
位于python文件夹中。如果您的工作空间是
module_A
的父目录,则必须使用类似
from module_A.python import script_B
的代码。

© www.soinside.com 2019 - 2024. All rights reserved.