VSCode / Pylint在同一目录中找不到模块

时间:2019-05-04 18:52:44

标签: python visual-studio-code pylint

我具有以下目录结构:

.
├── Pipfile
├── Pipfile.lock
└── src
    ├── config.py
    ├── __init__.py
    └── main.py

config.py的内容是:

FOO = 'bar'

main.py的内容是:

import config

print(config.FOO)

__init__.py为空。

使用上述设置,VSCode \ Pylint抱怨config has no FOO member

如果我删除__init__.py,警告消失。

为什么会这样?解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

之所以会这样,是因为import config绝对导入,这意味着Python试图将config作为顶级包或模块来查找。但是,当您拥有一个__init__.py文件时,会将您的src/目录设置为一个包,以便Python将src/config.py视为config而不是src.config。删除__init__.py时,VS Code的Python扩展假定您希望将src/目录仅视为保留代码的文件夹,从而进行了额外的工作,因此Python从{{1 }},而不是工作区的顶部。