VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

2024-03-03 1973阅读

温馨提示:这篇文章已超过383天没有更新,请注意相关的内容是否还可用!

VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

  • 1. 目的需求
  • 2. VS Code 简介
  • 3. 使用实践:一个简单的实例
    • 3.1 准备工作
      • 3.1.1 远程服务器
      • 3.1.2 本地计算机
      • 3.2 简单实例
        • 3.2.1 本地(local)- 远程服务器
        • 3.2.2 远程(ssh)- 本地计算机
        • 3.2.3 总结

          1. 目的需求

          我们通常在 Python 上进行 人工智能算法 开发,但是这通常需要专用的运行环境、依赖库和配置文件。为了 人工智能算法 开发的便利,通常会使用 Docker,因为 Docker 可以将我们的人工智能算法工程打包封装到一个 Container (容器)中,该 Container (容器)包含了 人工智能算法工程 的代码、运行环境、依赖库、配置文件等必需的资源,通过 Container (容器)就可以实现方便快速并且与平台解耦的自动化部署方式,无论你部署时的环境如何,Container (容器)中的 人工智能算法工程 都会运行在同一种环境下。

          然而 Docker Container 下通常是命令行交互,为了使 对应 Python 的开发和调试 更加便捷,我们使用 VS Code(Visual Studio Code)+ Remote Development 插件 来进行本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试。

          说明:PyCharm 付费的专业版有类似功能,但免费的社区版没有类似功能,所以这里使用 免费的解决方案(VS Code + Remote Development 插件)

          2. VS Code 简介

          VS Code,全称Visual Studio Code,是一款由微软开发的跨平台免费源代码编辑器。它可以在Windows、macOS和Linux等多个操作系统上运行,并且提供了丰富的功能和扩展支持。

          VS Code支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和Git版本控制系统。用户可以通过更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VS Code使用Monaco Editor作为其底层的代码编辑器。

          在开发者社区中,VS Code因其轻量级、多平台支持和丰富的插件生态系统而备受青睐。根据Stack Overflow组织的开发者调查,Visual Studio Code被认为是最受开发者欢迎的开发环境之一。

          3. 使用实践:一个简单的实例

          3.1 准备工作

          3.1.1 远程服务器

          3.1.1.1 ubuntu 20.04 系统

          说明:此处以 ubuntu 20.04 为介绍,其他系统可以举一反三

          3.1.1.2 部署 docker 服务

          (1) 安装 docker

            安装 docker

          (2)编写 Dockerfile 文件

          FROM ubuntu:20.04
          MAINTAINER hjw
          RUN apt-get update && \
              apt-get install -y python3 && \
              apt-get install -y vim
          CMD ["/bin/bash"]
          

          说明:此处在文件夹 docker_test 下新建 Dockerfile,并编辑内容如上所示

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (3)通过 Dockerfile 构建 docker

          docker build -t docker_test:1.0 .
          

          说明:使用当前目录的 Dockerfile 创建镜像,标签为 docker_test:1.0

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (4)运行构建好的 docker container

          docker run -it --name test -p 8022:22 --rm docker_test:"1.0"
          

          说明:使用镜像 docker_test:1.0 启动一个容器,并将容器命名为 test,并将容器的 22 端口映射到主机的 8022 端口,-it 确保 docker 后台交互运行

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (5)进入 container 配置 root 密码

          passwd
          

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (6)进入 container 安装配置软件

          apt-get update
          apt-get install -y vim
          

          3.1.1.3 Docker Container 的 SSH 服务配置

          (1)安装 ssh

          apt-get install -y openssh-server
          

          (2)修改 ssh 配置

          vi /etc/ssh/sshd_config
          

          添加如下配置:

          PubkeyAuthentication yes
          PermitRootLogin yes
          

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (3)重启 ssh 服务

          service ssh restart
          

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          3.1.2 本地计算机

          3.1.2.1 windows 10 系统

          说明:此处以 windows 10 为介绍,其他系统可以举一反三

          3.1.1.2 配置 VS Code 服务

          (1)安装 VS Code

            VS Code 官方下载链接

          (2)Extensions 添加 Remote Development

          说明:参考下图,添加并安装完成 Remote Development,进行 reload 或者 重启 VS Code

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (3)配置 ssh

          “Ctrl + Shift + P” ,输入“Remote-SSH”,选择“Open SSH Configuration File”,打开“****.ssh\config”,编辑如下

          Host alias
              HostName 10.78.3.124
              Port 8022
              User root
          

          说明:参考下面3幅图,其中 Host 随便选名字,HostName 是远程服务器的 IP 地址,Port 是 远程服务器的 docker 映射到服务器上的端口号(此处需要与 3.1.1.2 (4) 中 docker_test:1.0 的端口号对应,即8022),User 是登陆账户

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (4)连接 SSH 主机

          “Ctrl + Shift + P” ,输入“Remote-SSH”,选择“Connect to Host…”,然后点击“alias”,接着选“Linux”,“Continue”,最后按提示输入 3.1.1.2 中 (5)所配置的 root 密码,在左下角显示“SSH: alias”,说明已经成功连接 docker。

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          说明:输入 root 密码,密码与 3.1.1.2(5) 中设置保持一致

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          说明:连接的过程中,需要下载资源并进行配置,需要耗费一定的时间

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          说明:在左下角显示“SSH: alias”,说明已经成功连接 docker,并且 TERMINAL 显示 docker 命令行,此过程中会需要再次输入 root 密码,密码与 3.1.1.2(5) 中设置保持一致

          连接异常处理

          出现如下连接异常,主要是 key 验证失败,只需要清除原先的 key 即可。

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          解决方法是,找到对应 known_hosts 文件,并删除其中原来的 host key 条目(与前文对应,其中 [10.78.3.124]:8022 是 远程服务器的 IP 和 Port),这里对应的是 [10.78.3.124]:8022 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIRamKyTqfJ/t9vkADiZ4DUK9c6HnwZlPydU5zBAf2WU4MQq3KC1ceOEKqKDqR09wAJHXWBTWkQ/mSKNTBzQ7fE=,将此条目删除后,重启 VS Code,重复 (4)连接 SSH 主机 操作即可

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          连接异常处理,说明:在 ubuntu 系统中,使用命令 ssh-keygen -f “/home/hjw/.ssh/known_hosts” -R “[10.78.3.124]:8022” 删除其中原来的 host key 条目(与前文对应,其中 [10.78.3.124]:8022 是 远程服务器的 IP 和 Port),将此条目删除后,重启 VS Code,重复 连接 SSH 主机 操作即可

          (5)Extensions 添加 Python 插件

          说明:此处为 SSH:alias 添加,SSH:alias 添加完成,即安装在 服务器 docker 中,最后重启 VS Code

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          安装完成后:VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (6)配置 Python 解释器

          “Ctrl + Shift + P” ,输入“Python:Select Interpreter”,选择需要的 Python 解释器。

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          3.2 简单实例

          在完成 3.1 准备工作 后

          3.2.1 本地(local)- 远程服务器

          (1)在远程服务器安装 VS Code

          (2)在远程服务器上的 VS Code 中,Extensions 添加 Remote Development

          说明:参考下图,添加并安装完成 Remote Development,进行 reload 或者 重启 VS Code

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (3)Remote Explorer 选择 Dev Containers

          说明:参考下图,选择 Dev Containers

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (4)选择 docker_test:1.0,Attach in Current Window

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (5)在 VS Code 中,点击 “File”,并选择 “Open Folder”,打开 远程服务器 docker 的 “home” 路径。

          说明:参考下图,打开 远程服务器 docker 的 “home” 路径,其中左下角显示当前连接的 Container 为 docker_test:1.0 (docker_test)

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (6)在 “home” 下新建文件 “test.py”,内容如下:

          # -*- coding: utf-8 -*-
          # @Last Modified by:   hjw
          # @Last Modified time: 2024-02-27 16:00
          print("hello, world!")
          

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (7)打开 “test.py”,并设置断点,进行调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          3.2.2 远程(ssh)- 本地计算机

          (1)在本地计算机已经连接连接远程服务器 docker后,在本地计算机 VS Code 中,点击 “File”,并选择 “Open Folder”,打开 远程服务器 docker 的 “home” 路径。

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (2)在 “home” 下新建文件 “test.py”,内容如下:

          # -*- coding: utf-8 -*-
          # @Last Modified by:   hjw
          # @Last Modified time: 2024-02-27 16:00
          print("hello, world!")
          

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          (3)打开 “test.py”,并设置断点,进行调试

          VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试

          3.2.3 总结

          到此,完成 一个简单的实例,即 VS Code(Visual Studio Code)本地(local)和远程(ssh)Docker Container 下的 Python 开发和调试,然后可以在此基础上进行类推进行更复杂的开发和调试。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]