在VSCode中选择Docker容器的解释器。

19
在VS Code中,我们可以安装Python扩展程序,然后选择我们想要的解释器,比如在conda环境中的Python。
因此,我们可以使用“shift” + “enter”键在终端逐行运行代码。为了管理不同的虚拟环境,使用Docker容器是一种更好的方式。
如果我已经安装了Docker,并拉取了Python镜像。如何选择在Docker容器中创建的解释器?而不仅仅是远程连接到Docker容器中。

图片标签选择的是Python版本,而非IDE。 - Klaus D.
5个回答

30

在VSCode 1.61上进行测试:

  1. 安装Remote-Containers扩展
  2. 构建/启动Docker容器
  3. 打开命令面板,输入Remote-Containers: Attach to Running Container...,然后选择正在运行的Docker容器
  4. VSCode将重新启动和重新加载
  5. Get Started页面上,点击Open...并输入挂载到源代码的Docker卷的路径。它必须设置为与Dockerfile-local中的WORKDIR相同的路径,例如/app
  6. 在容器上安装Python扩展
  7. 打开命令面板,输入Python: Select Interpreter,然后选择Docker解释器
  8. 打开命令面板,输入Python: Configure Tests,然后选择您使用的框架

来源:https://dev.to/alvarocavalcanti/setting-up-a-python-remote-interpreter-using-docker-1i24

更新 #1。 远程开发扩展 目前似乎是 VSCode 开发的主要关注点之一,例如,较新版本默认启用了 远程资源管理器 活动选项卡,这使得连接到 Docker 容器更加直观。请在此处查看发布说明:https://github.com/microsoft/vscode-docs/tree/main/remote-release-notes

更新 #2。 现在应该使用 Dev Containers 而不是 Remote Containers

请查看文档:https://code.visualstudio.com/docs/devcontainers/containers

  1. 创建 .devcontainer/devcontainer.json
{
    "name": "My Devcontainer",
    "dockerComposeFile": "docker-compose.yml",
    "service": "app",
    "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
    "customizations": {
        ...

文档:https://containers.dev/implementors/json_reference/

  1. 将你的 Dockerfiledocker-compose.yml.env 添加到 .devcontainers
...
services:
  app:
    build:
      context: ..
      dockerfile: .devcontainer/Dockerfile

    volumes:
      - ../..:/workspaces:cached

    env_file: .env
...

使用“Dev容器:在容器中打开文件夹”和“Dev容器:重建容器”提示进行操作。

2
似乎步骤3、4和5已经简化了:https://code.visualstudio.com/docs/devcontainers/attach-container - Romain Renard

0
如果您的目标是让VSCode在本地项目上工作,并使用基于Docker的解释器运行它,解决方案是:将本地项目目录挂载到包含解释器的Docker容器中,然后在VSCode中从容器中打开已挂载的项目目录。
如何挂载您的项目目录:
docker run -v /user/localproject:/root/mountedproject

https://docs.docker.com/storage/volumes/

我已经测试过了,应该可以正常工作。


0

在 vscode 创建的 devcontainer.json 文件中,您有一个 image 键和它的值是指向镜像的路径。如果您想要更改 Python 版本,您可以在那里进行更改,或者使用 vscode 文档 这里 中的快速说明。


@HouZeYu 这有帮助解决你的问题吗? - Noam Yizraeli

0

我认为这是不可能的,恐怕您必须远程连接到Docker容器。

我真的无法想象您直接在Windows上使用Linux中的Python解释器。


4
你可以使用Pycharm完成它。 - DanielMescoloto

0

确保容器中安装了您想要/需要的所有扩展。单击左侧的“扩展”以查看本地安装和容器内安装的扩展。

在容器内安装您通常在本地使用的所有内容(特别是Python和Pylance)。您将看到一个“在Dev容器中安装”按钮。安装您需要的所有内容,然后重新启动VS Code,您就可以开始使用了。

Example showing the install in Dev Container button

示例展示了在开发容器中安装的按钮


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接