我有以下目录结构:
.
├── 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 没有 FOO 成员
。
如果我删除 __init__.py
警告就会消失。
为什么会发生这种情况以及解决此问题的正确方法是什么?
最佳答案
发生这种情况是因为import config
是绝对导入,这意味着Python正在尝试查找config
作为顶级包或模块。但是当你有 __init__.py
文件您制作src/
目录一个包,这样Python就可以处理src/config.py
不像config
但如src.config
。当您删除__init__.py
时,VS Code 的 Python 扩展假设您想要 src/
目录仅被视为保存代码的文件夹,因此会执行额外的工作,因此 Python 从 src/
运行而不是工作区的顶部。
关于python - VSCode/Pylint 在同一目录中找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55985814/