VSCode 远程容器默认 python 解释器

VSCode remote-container default python interpreter

我有一个 dockerfile 来创建一个带有 miniconda 的容器并安装一些包(这里删减):

FROM continuumio/miniconda3:4.11.0

# install the necessary packages
RUN conda install -c conda-forge python=3.10.4 \
  ipykernel=6.13.0 \
  numpy=1.22.3

ENV APP_DIR /app
WORKDIR ${APP_DIR}

CMD /bin/bash

然后我使用 VSCode,将“远程容器”扩展为“在容器中打开文件夹”。

然后我打开一个 python 文件并按 F5 到 运行,但它无法识别某些包。我必须单击 VSCode 右下角,将解释器从“3.9.2 64 位”(/usr/bin/python3) 更改为“3.10.4 ('base':conda)”(/opt/conda/bin/python).

有没有办法避免这最后一步?也许在 devcontainer.json 文件中添加一些东西?到目前为止的主要想法是尝试修改 PATH 环境变量,使其不检测 3.9.2 python,或者实际删除 3.9.2 python 文件夹或 link在 dockerfile 中使用命令,但这些想法看起来都很丑陋。

您是否尝试在 devcontainer.json 中添加“设置”字段以便指定 python.pythonPath 值?

像这样:

// devcontainer.json
{
    "name": "My devcontainer",
    "settings": {
        "python.pythonPath": "/opt/conda/bin/python"
    },
    // Add the IDs of extensions you want installed when the container is created.
    "extensions": [
        "ms-python.python",
        "ms-azuretools.vscode-docker",
    ]
}