PyCharm 2025.1 Help

使用 Docker 配置解释器

简介

PyCharm 与 Docker 的集成允许您在部署于 Docker 容器中的各种配置的开发环境中运行您的应用程序。

前提

确保满足以下前提条件:

  • 已经按照 Docker 文档中描述安装 Docker。

    您可以在各种平台上安装 Docker,但这里我们将使用 Windows 安装。

    请注意,您可能希望在不同平台上重复此教程;然后使用适用于 macOSLinux (Ubuntu 及其他发行版的相关说明也可用)的 Docker 安装。

  • 您的网络连接稳定,因此 PyCharm 可以下载并运行 busybox:latestBusyBox Docker 官方镜像的最新版本)。 一旦成功使用 Docker 配置了解释器,您就可以离线。

  • 在开始使用 Docker 之前,请确保已启用 Docker 插件。 该插件随 PyCharm 一起捆绑,并默认激活。 如果插件未激活,请按照 安装插件 中描述的方式,在 插件 设置页面  Ctrl+Alt+S 启用它。

    设置 对话框(Ctrl+Alt+S )中,选择 构建、执行、部署 | Docker ,并在 使用以下方式连接到 Docker 守护进程 下选择 Docker for <您的操作系统>。 例如,如果您使用的是 macOS,请选择 Docker for Mac。 在 Docker 设置 中查看更多详细信息。

请注意,您无法向基于 Docker 的项目解释器中安装任何 Python 包。

准备示例

创建一个 Python 项目QuadraticEquation添加 Solver.py 文件,并复制粘贴以下代码:

import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

将 Docker 配置为远程解释器

现在,让我们定义一个基于 Docker 的远程解释器。

  1. 请执行以下操作之一:

    • 点击 Python Interpreter 选择器 并选择 添加新的解释器

    • Ctrl+Alt+S 以打开 设置 并转到 项目:<项目名称> | Python 解释器。 点击可用解释器列表旁的 添加解释器 链接。

    • 点击 Python Interpreter 选择器 并选择 解释器设置。 点击可用解释器列表旁的 添加解释器 链接。

  2. 请选择 在 Docker 上

  3. Docker 服务器 下拉菜单中选择一个现有的 Docker 配置。

    或者,单击 并执行以下步骤以创建新的 Docker 配置:

    创建 Docker 配置

    点击 "添加"按钮 以添加 Docker 配置,并指定如何连接到 Docker 守护进程。

    连接设置取决于您的 Docker 版本和操作系统。 如需更多信息,请参阅 Docker connection settings

    连接成功 消息应出现在对话框的底部。

    Docker 连接设置

    有关在 Windows 或 macOS 上使用 Docker 时将本地路径映射到运行 Docker 守护进程的虚拟机的更多信息,请参阅 Windows 和 macOS 主机的虚拟机路径映射。 您将无法对映射本地路径之外的目录使用卷和绑定挂载。

    此表在 Linux 主机上不可用,在该主机上 Docker 本地运行,您可以将任何目录挂载到容器。

  4. 以下操作取决于您是要从 Docker 注册表中拉取预构建的镜像,还是从 Dockerfile 本地构建镜像。

    拉取 Docker 镜像

    选择 拉取或使用现有镜像 并在 镜像标记 字段中指定所需镜像的标签。

    通过拉取镜像创建 Docker 解释器
    构建 Docker 镜像

    选择 构建 并在必要时更改 Dockerfile上下文文件夹 字段中的默认值。

    通过构建镜像创建 Docker 解释器

    如果需要,展开 可选 部分并指定以下内容:

    镜像标记

    为生成的镜像指定一个可选名称和标签。

    这对将来参考图像会有所帮助。 如果您将该字段留空,图像将只有一个随机唯一标识符。

    构建选项

    设置支持的 docker build 选项

    例如,您可以使用 --label 选项为构建的镜像指定元数据。

    构建实参

    指定构建时变量的值,这些变量在构建过程中可以像常规环境变量一样访问,但不会在中间或最终镜像中持久存在。

    这与使用 --build-args 选项和 docker build 命令相似。

    这些变量必须通过 ARG 指令在 Dockerfile 中定义。 例如,您可以为即将使用的基础镜像版本定义一个变量:

    ARG PY_VERSION=latest FROM python:$PY_VERSION

    在这种情况下, PY_VERSION 变量将默认为 latest ,并且 Dockerfile 将生成一个具有最新可用 Python 版本的镜像,除非您将其重新定义为构建时参数。 如果设置了 PY_VERSION=3.10 ,Docker 将拉取 python:3.10 ,运行一个带有 Python 3.10 版本的容器。

    PY_VERSION 参数重新定义类似于设置以下命令行选项:

    --build-arg PY_VERSION=3.10

    您可以提供用空格分隔的多个参数。

  5. 等待 PyCharm 连接到 Docker 守护进程并完成容器自省。

    Docker 容器自省已完成
  6. 接下来,选择一个解释器以在 Docker 容器中使用。 您可以选择容器中已配置的任何 virtualenv 或 conda 环境,或者选择系统解释器。

    为 Docker 目标选择系统解释器
  7. 点击 OK

    配置的远程解释器已添加到列表中。

在 Docker 容器中运行您的应用程序

main 子句旁边的边栏中,点击 图标,并选择 运行 'solver'

运行上下文菜单

脚本在 运行 工具窗口中启动。 为脚本提供值:

在 Docker 容器中运行示例

切换到 服务 工具窗口以预览容器详细信息。 展开 容器 节点并选择正在运行的容器。

服务工具窗口中的 Docker 容器

请注意, 日志 选项卡包含相同的执行结果。

在 Docker 容器中调试您的应用程序

接下来,让我们调试应用程序。 为此,让我们通过点击行号在计算 d 的行上设置一个断点。 然后点击 边栏中的图标,并选择 调试 'solver'

设置断点并启动调试器

调试器也在 Docker 容器中运行:

在 Docker 容器中调试

然而,现在此容器具有不同的 id,因此名称也不同。

摘要

让我们总结一下在 PyCharm 的帮助下完成的工作:

  • 我们创建了一个项目并添加了一个 Python 脚本。

  • 我们配置了远程解释器。

  • 我们在 Docker 容器中运行并调试了脚本。

  • 最后,我们启动了 Docker 工具窗口,并在终端中查看了所有可见的详细信息。

有关更多信息,请参阅以下视频教程:

最后修改日期: 2025年 4月 23日