【问题标题】:VSCode Intellisense shows wrong autocomplete modulesVSCode Intellisense 显示错误的自动完成模块
【发布时间】:2021-06-26 11:23:15
【问题描述】:

我有几个具有相同结构的模块,似乎 VSCode Intellisense 将它们混合在一起。

这是我的项目结构的一部分:

project
|-- daos
|   -- strategies
|      -- __init__.py
|      -- athena_strategy.py
|   -- __init__.py
|   -- db.py
|-- extractor
|   -- strategies
|      -- __init__.py
|      -- extractor_strategy.py
|   -- __init__.py
|   -- extractor.py

问题是当我尝试在extractor.py 中导入strategies 时,Intellisense 向我显示athena_strategy 模块而不是extractor_strategy

这是.vscode中的settings.json文件:

{
    "python.pythonPath": "/usr/bin/python3",
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.autoComplete.extraPaths": [
        "${workspaceFolder}/extractor",
        "${workspaceFolder}/daos",
        "${workspaceFolder}/ingester",
    ]
}

为了在导入中获得正确的模块,我必须添加任何其他配置吗?

【问题讨论】:

    标签: python visual-studio-code intellisense pylint


    【解决方案1】:

    在VS Code中使用python时,其“智能感知”功能由“python”扩展和语言服务提供,不同语言服务显示的“自动补全”内容不同。

    1. 当使用“Jedi”时:("python.languageServer": "Jedi", in settings.json)

    2. 使用“Microsoft”或“Pylance”时:

      它要求我们使用“from extractor.strategies.”,“自动完成”将显示我们需要的内容。另外,为了使代码可运行,请添加“import sys “extractor.py”开头的sys.path.append("./")”。

    另外,建议大家使用不同的文件名和文件夹名,这个良好的编程习惯可以避免很多问题。

    【讨论】:

    • 为语言服务器安装 Pylance 扩展解决了这个问题。我不确定是否使用不同的文件和文件夹名称,因为每个模块具有一致的结构可以提高可读性并使其更直观。
    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2020-04-15
    • 2021-06-05
    • 2018-12-03
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多