【问题标题】:VSCode/Pylint can't find module in same directoryVSCode/Pylint 在同一目录中找不到模块
【发布时间】:2019-05-04 18:52:43
【问题描述】:

我的目录结构如下:

.
├── 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,警告就会消失。

为什么会发生这种情况以及解决此问题的正确方法是什么?

【问题讨论】:

    标签: python visual-studio-code pylint


    【解决方案1】:

    这是因为 import config 是一个 absolute 导入,这意味着 Python 正在尝试将 config 查找为顶级包或模块。但是当你有一个__init__.py 文件时,你将你的src/ 目录变成一个包,这样Python 就不会把src/config.py 当作config,而是当作src.config。当您删除 __init__.py 时,VS Code 的 Python 扩展假定您希望您的 src/ 目录被视为您保存代码的文件夹,因此会做额外的工作,因此 Python 从 src/ 而不是顶部运行您的工作空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-25
      • 2023-03-13
      • 2021-09-24
      • 2017-12-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多