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

标签 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 没有 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/

相关文章:

python - 在 Keras 中创造恒定值

python - 如何使用Sqlalchemy和Flask关闭MySql连接?

python - "is"运算符对整数的行为异常

visual-studio-code - 我可以在不编写扩展的情况下测试我的 LSP 服务器吗?

python - VS 代码 : How to auto refresh Pylint

python - 运行多个python脚本和多处理有什么区别

visual-studio-code - VS Code - 函数括号前的空格

visual-studio-code - 对 .tsx/.ts 文件中的 css 类名禁用智能感知

pylint 和预提交 Hook 无法导入

python - 错误信息 "python-pylint ' C0103 :Invalid constant name"