如何解决 Pylance(reportMissingImports) 问题?

Ali*_*i.A 9 python import visual-studio-code fastapi pylance

我曾经pip install fastapi在虚拟环境中的终端中下载它,但是当我尝试从中导入时,它显示为丢失的导入。

Sor*_*ary 26

如果您想将软件包安装到特定的虚拟环境中,您需要首先“激活”该环境。同样,如果您想在该环境中运行脚本,您需要首先“激活”它。您可以手动执行此操作,或者最好让 VSCode 为您处理。

为了告诉 VSCode(尤其是语言服务器 pylance)使用该环境:

  1. 打开命令面板(按ctrl+shift+Pf1)并输入:"python: select interpreter"
  2. 浏览/选择 venv 中新创建的 python 解释器的路径。
  3. 添加"python.terminal.activateEnvironment": true到您的setting.json文件(当然也可以通过 GUI 设置通过搜索python: activate environment)。每当您打开集成终端时,这都会自动检测并激活您的 venv。显然,如果路径应该指向 venv 解释器。(注意:您必须在编辑器中打开一个 Python 文件)。

您还可以手动设置 Python 的解释器路径:

  1. 创建一个名为.vscodein 您的工作区的文件夹。
  2. 创建一个文件,settings.json在里面调用。
  3. 将这些添加到settings.json
{
    "python.defaultInterpreterPath": "PATH_TO_VENV_INTERPRETER",
    "python.terminal.activateEnvironment": true
}
Run Code Online (Sandbox Code Playgroud)

注意:我通常做的是,我"python.defaultInterpreterPath"向我的用户 settings.json插入一个指向我的全局解释器的密钥。然后,我为每个项目创建工作区 settings.json,并添加指向我的 venv 解释器的相同密钥。请记住,工作区settings.json将覆盖用户的settings.json.

这样,每当您在项目文件夹中打开 VSCode 时,它​​都会自动知道它应该激活 venv 的解释器(我告诉它使用"python.terminal.activateEnvironment"),并且如果您在普通文件夹中打开 VSCode,它会正确使用全局解释器。

用户和工作空间之间的区别settings.json