当前位置: 首页 > news >正文

在VScode中添加Linux中的Docker容器中的Python解释器

VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器,而想要额外添加新的Python解释器就需要自己设置。

VScode编辑器安装在本地电脑

支持Python的docker安装在远程服务器

第一步,在/usr/local/下新建python/app文件夹

命令:mkdir -p /usr/local/python /usr/local/python/myapp

python容器配置的应用目录将映射为/usr/local/python/myapp。

第二步,创建python容器。

命令:docker pull python

docker images -a

docker run -d --name mypython -p 8022:22 -v /automl:/workspace/automl -it python:latest /bin/bash

docker ps -a

注释:

[-p 8022:22]:把docker的端口号22映射到服务器的端口号8022。

[-d]:容器后台运行,避免退出容器后容器自动关闭。

[-v]:挂载和同步目录,服务器和docker内有一个文件夹保持同步。

[-it]:确保docker后台交互运行。

[python:latest]:镜像名。

[/bin/bash]:docker内要运行的指令。

第三步,容器内安装ssh服务。

# 进到IMAGE为python的容器内

命令:docker attach [容器ID]

或    docker exec -it [容器ID] /bin/bash

# 更新apt-get

命令:apt-get update

# 安装vim

命令:apt-get install vim

# 安装openssh-server

命令:apt-get install openssh-server

# 设置root密码

命令:passwd

步,配置/etc/ssh/sshd_config文件。

在文件/etc/ssh/sshd_config中添加下面的代码:

# 启用公钥私钥配对认证方式PubkeyAuthentication yes# 允许root用户使用ssh登录PermitRootLogin yes

步,重启ssh服务。

# 重启ssh服务

命令:/etc/init.d/ssh restart

或    service ssh restart

步,退出docker后,验证端口映射

命令:docker ps -a

sudo docker port [容器ID] 22

若结果输出“0.0.0.0:8022”,则说明端口映射正确。

步,在本地电脑连接docker

当退出docker后,在本地电脑连接docker,结果显示“ssh connection refused.”,这是因为退出docker后,ssh会被关掉。可以先通过命令“docker attach [容器ID]”进入container,然后输入命令“/etc/init.d/ssh restart”启动ssh服务。

# 在本地电脑打开cmd,输入ssh命令,回车后输入第三步中设置的root连接密码,就可以从本地电脑登录远程服务器的docker。

命令:ssh root@x.x.x.x -p 8022

步,使用VSCode连接远程主机上的docker container

打开VScode编辑器,按下快捷键“Ctrl+Shift+X”,查找安装“Remote Development”。安装完成后需要点击“reload”,然后按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“open SSH Configuration file”,在文件C:\Users\Administrator\.ssh\config中添加如下内容:

# Host随便起名字Host AutoML_docker# HostName是服务器的IP地址HostName x.x.x.x# Port是docker映射到服务器上的端口号Port 8022User root

保存后,按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“Connect to Host...”,然后点击“AutoML_docker”,接着选择“Linux”,最后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。

 

第九步,在服务器docker中配置VScode debugger。

成功连接docker之后,按下快捷键“Ctrl+Shift+X”,查找“Python”,并安装在服务器docker中。然后重启VSCode。

 

重新连接docker,按下快捷键“Ctrl+Shift+P”,输入“python: select interpreter”,点击“选择解释器”,就会列出在系统中找到的Python环境,点击需要的python解释器即可。

确定在VScode中是否添加了Python解释器:

1)先在桌面新建一个文件夹,并命名为“aaaa”;

2)在VScode中,点击“File”,并选择“Open Folder”,将桌面新建的“aaaa”添加进来;

3)添加“aaaa”后点击确定,并选择“Yes,I trust the authors”;

4)在添加进来的“aaaa”项目中点击“New fiel…”,创建文件text.py;

5)在创建好的text.py中输入代码“print(‘hello world’)”,并点击运行按钮,即可在终端得到运行结果。

执行上述步骤之后,可在VScode右下角看到“Python”的内容,说明在VScode中添加了Python解释器。

 

可以通过命令“docker attach [容器ID]”进入Python容器,然后在容器中使用命令“find / -name launch.json”查找launch.json。

点击“运行和调试”选项,接着点击“打开文件”,填入刚刚查找的launch.json路径(/root/.vscode-server/bin/441438abd1ac652551dbe4d408dfcec8a499b8bf/extensions/debug-auto-launch/.vscode),点击“确定”就可以打开launch.json文件。

编辑launch.json文件,把文件中的代码全部换成下面的代码:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "python","request": "launch","name": "Python: Current File (Integrated Terminal)","skipFiles": ["<node_internals>/**"],"program": "${file}"}]}

VScode debugger配置完成之后,可以选择刚才配置的解释器来逐行调试docker内的代码。因为docker内的代码是通过-v与服务器同步的,所以修改docker内的代码后,服务器上的代码也会跟着改变,需要git时,就只需在服务器端设置,而不用在docker内设置。

第十步,退出容器,并将容器保存为新的镜像

命令:docker ps -a

docker images -a

docker commit [OPTIONS] [容器ID] [新的镜像名称:新的镜像标签]

[OPTIONS]说明:

[-a]:提交的镜像作者。

[-m]:提交时的说明文字。

[-p]:在commit时,将容器暂停。

第十一步,基于新镜像创建并运行新的容器。

命令:docker run -t -i -p 8022:22 --name [新容器名称] [新的镜像名称:新的镜像标签] /bin/bash

# 退出新的容器,重启新的容器

命令:systemctl restart docker

docker start [新的容器ID]

# 新的容器启动成功,会显示相应的端口号

命令:docker ps -a

# 只要保证新的容器内22端口成功启动,就可以进行远程连接。

命令:sudo docker port [新的容器ID] 22

 

# 进到新的容器内

命令:docker attach [新的容器ID]

或    docker exec -it [新的容器ID] /bin/bash

# 重启ssh服务

命令:/etc/init.d/ssh restart

或    service ssh restart

点击“远程资源管理器”选项,接着点击“SSH—AutoML_docker—在当前窗口连接”,然后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。

 

相关文章:

在VScode中添加Linux中的Docker容器中的Python解释器

VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器&#xff0c;而想要额外添加新的Python解释器就需要自己设置。 VScode编辑器安装在本地电脑 支持Python的docker安装在远程服务器 第一步&#xff0c;在/usr/local/下新建pytho…...

无法将“django-admin”项识别为cmdlet,函数,脚本文件或可运行程序的名称问题

无法将“django admin”项识别为cmdlet&#xff0c;函数&#xff0c;脚本文件或可运行程序的名称问题 小提示&#xff1a;首先检查一下有没有拼写错误&#xff01;&#xff01;&#xff01;没有的话请继续 我们要知道django装到哪里去了 pip show django 注意&#xff1a;3.0…...

乐友商城学习笔记(十五)

无状态登陆原理 在服务器端保存session 无状态不需要session&#xff0c;把登陆状态保存在cookie中 jwtrsa token&#xff1a;登陆时&#xff0c; jwt oath2 jwt&#xff1a;头信息&#xff08;jwt&#xff09; 载荷&#xff08;用户信息&#xff0c;签发人&#xff0c;签发时…...

目标检测论文阅读:CBNet算法笔记

标题&#xff1a;CBNet: A Composite Backbone Network Architecture for Object Detection 期刊&#xff1a;TIP2022 论文地址&#xff1a;https://ieeexplore.ieee.org/document/9932281/ 官方代码&#xff1a;https://github.com/VDIGPKU/CBNetV2 作者单位&#xff1a;北京大…...

vue前端与Java后端进行跨域交互

1.后端的几种解决方法 1.在Controller上面加上CrossOrigin 2.写一个配置文件并且在Controller层加上注解CORSConfig package com.wolwo.langyage.base.util;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configurat…...

【设计模式】2.抽象工厂模式

抽象工厂模式 前面介绍的工厂方法模式中考虑的是一类产品的生产&#xff0c;如畜牧场只养动物、电视机厂只生产电视机、传智播客只培养计算机软件专业的学生等。 这些工厂只生产同种类产品&#xff0c;同种类产品称为同等级产品&#xff0c;也就是说&#xff1a;工厂方法模式…...

Telnet 基础实验1: Telnet 实验

Telnet 基础实验1&#xff1a; Telnet 实验 拓扑图 配置命令 R1 的配置 undo ter mo sys sys R1 interface g0/0/0 ip address 192.168.1.1 255.255.255.0 qR2 的配置 undo ter mo system-view sysname R2 interface g0/0/0 ip address 192.168.1.2 255.255.255.0 q两台设…...

机器学习经典算法——决策树(Decision Tree)

决策树的基本原理 决策树是⼀种分⽽治之的决策过程。⼀个困难的预测问题&#xff0c;通过树的分⽀节点&#xff0c;被划分成两个或多个较为简单的⼦集&#xff0c;从结构上划分为不同的⼦问题。将依规则分割数据集的过程不断递归下去。随着树的深度不断增加&#xff0c;分⽀节…...

MySQl总结

文章目录MySQL数据库的常见考点1、ACID事务原理事务持久性事务原子性MVCC基本概念MVCC基本原理undo logundo log版本链readviewMVCC实现原理RC读已提交RR可重复读MVCC实现原理总结2、并发事务引发的问题3、事务隔离级别4、索引索引结构BTreeHash面试题索引分类思考题语法性能分…...

【学习笔记】NOIP爆零赛7

结论专场&#xff0c;结果被踩暴了 青鱼和序列 赛时的做法是&#xff0c;维护∑aii\sum a_i\times i∑ai​i的取值&#xff0c;发现只和最后一次操作222的位置有关&#xff0c;于是递推O(n)O(n)O(n)解决。 赛后发现还有更神奇的结论 第二个结论是&#xff0c;第一次进行操作…...

一文读懂账号体系产品设计

一、账号体系的概念及价值账号体系是用户在各平台上的通行证。平台给与用户可持续的服务&#xff0c;用户在平台上获取价值&#xff0c;中间的媒介&#xff0c;便是账号体系。阿境将其理解为维系用户与平台之间的枢纽。注&#xff1a;本文中&#xff0c;账号账户&#xff0c;二…...

从“入门”到“专家”,一份3000字完整的性能测试体系的知识分享

随着科技的飞速发展&#xff0c;软件产品广泛应用于各个行业领域&#xff0c;人们对计算机和网络的依赖性越来越大&#xff0c;对新奇事物也越来越感兴趣&#xff0c;成千上万的用户活跃在庞大的网络系统中&#xff0c;这给提供服务的系统带来严重的负荷&#xff0c;"高并…...

构建对话机器人:Rasa3安装和基础入门

在开源对话机器人中&#xff0c;Rasa社区很活跃&#xff0c;在国内很多企业也在使用Rasa做对话机器人&#xff0c;有rasa开发经验的往往是加分项。 当年实习的时候接触到了Rasa&#xff0c;现在工作中也使用Rasa&#xff0c;因此&#xff0c;写写一些经验文档&#xff0c;有助后…...

Spark计算框架入门笔记

Spark是一个用于大规模数据处理的统一计算引擎 注意&#xff1a;Spark不仅仅可以做类似于MapReduce的离线数据计算&#xff0c;还可以做实时数据计算&#xff0c;并且它还可以实现类似于Hive的SQL计算&#xff0c;等等&#xff0c;所以说它是一个统一的计算引擎 既然说到了Spar…...

入职数据分析公认的好书|建议收藏

众所周知&#xff0c;数据分析经常出现在我们的日常生活中&#xff0c;各行各业都需要数据分析。可你知道什么是数据分析&#xff1f;它在企业里到底扮演什么角色&#xff1f;以及如果我们自己也想拥有数据分析的能力&#xff0c;以便更好的满足数据分析的需求&#xff0c;我们…...

Linux查找文件和目录,重定向输出 ,系统默认运行级别的查看和设置理论和练习

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

Redis源码---键值对中字符串的实现,用char*还是结构体

目录 前言 为什么 Redis 不用 char*&#xff1f; char* 的结构设计 操作函数复杂度 SDS 的设计思想 SDS 结构设计 SDS 操作效率 紧凑型字符串结构的编程技巧 小结 前言 对于 Redis 来说&#xff0c;键值对中的键是字符串&#xff0c;值有时也是字符串在 Redis 中写入一…...

算法 - 剑指Offer 表示数值的字符串

题目 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。 数值&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 若干空格 一个 小数 或者 整数 &#xff08;可选&#xff09;一个 ‘e’ 或 ‘E’ &#xff0c;后面跟着一个 …...

初识机器学习

监督学习与无监督学习supervised learning&#xff1a;监督学习&#xff0c;给出的训练集中有输入也有输出&#xff08;标签&#xff09;&#xff08;也可以说既有特征又有目标&#xff09;&#xff0c;在此基础上让计算机进行学习。学习后通过测试集测试给相应的事物打上标签。…...

VsCode安装PlatformIO 开发ESP arduino,买的板子或者随便ESP,PlatformIO添加Board(不是自定义Board)

这次主要记录怎么给新建选板子的时候没有的板子下程序 我这里是一块 WiFi Kit 32 (V3) PlatformIO里面只有到V2 先从头开始&#xff0c;安装PlatformIO 安装PlatformIO 直接搜索安装 安装有时候会比较慢&#xff0c;左侧出现蚂蚁图标之后点击会显示 右下角会提示正在安…...

Qwen3-ASR-1.7B保姆级教程:解决‘识别结果不准确’的5类高频问题

Qwen3-ASR-1.7B保姆级教程&#xff1a;解决‘识别结果不准确’的5类高频问题 1. 引言&#xff1a;为什么你的语音识别总是不准&#xff1f; 你是不是遇到过这样的情况&#xff1a;用语音识别软件录音&#xff0c;结果出来的文字乱七八糟&#xff0c;完全不是你说的内容&#…...

AS3935闪电传感器Arduino驱动库深度解析与工业级应用

1. 项目概述AS3935 是一款由 AMS&#xff08;现为 ams OSRAM&#xff09;推出的专用闪电检测传感器芯片&#xff0c;集成 RF 前端、数字信号处理器&#xff08;DSP&#xff09;、闪电算法引擎及 IC/SPI 接口&#xff0c;可实现对 40 km 范围内云地闪&#xff08;CG&#xff09;…...

VSCode远程开发必备:SSH端口转发一键配置指南(含常见问题排查)

VSCode远程开发实战&#xff1a;SSH端口转发高效配置与深度排错 当你在咖啡厅修改代码时&#xff0c;远程服务器上的数据库服务突然需要紧急调试&#xff1b;当团队协作时&#xff0c;同事的内网API接口需要临时开放给你测试——这些场景下&#xff0c;SSH端口转发就像一把瑞士…...

AI原生推荐:如何实现端到端的训练?

AI原生推荐&#xff1a;如何实现端到端的训练&#xff1f;关键词&#xff1a;AI原生推荐、端到端训练、深度学习推荐系统、推荐模型架构、多模态融合摘要&#xff1a;本文将从“AI原生推荐”的核心需求出发&#xff0c;用“快递物流”“餐厅点菜”等生活化类比&#xff0c;逐步…...

医学影像组学实战:Pyradiomics YAML配置文件全解析(附完整示例)

医学影像组学实战&#xff1a;Pyradiomics YAML配置文件全解析&#xff08;附完整示例&#xff09; 在医学影像分析领域&#xff0c;特征提取是构建精准诊断模型的关键步骤。Pyradiomics作为开源的医学影像组学工具包&#xff0c;通过YAML配置文件提供了高度灵活的特征提取方案…...

PostgreSQL(OpenGauss/MogDB) 大小写转换实战:批量处理表名与字段名的自动化方案

1. 为什么PostgreSQL的大小写问题让人头疼&#xff1f; 第一次用PostgreSQL的时候&#xff0c;我就被它的大小写规则坑惨了。明明在Oracle里运行好好的SQL语句&#xff0c;搬到PostgreSQL就报"relation does not exist"错误。后来才发现&#xff0c;原来PostgreSQL对…...

WiFi信号弱?5分钟搞懂dBi、dBm和dB的区别,选对天线不踩坑

WiFi信号弱&#xff1f;5分钟搞懂dBi、dBm和dB的区别&#xff0c;选对天线不踩坑 每次视频会议卡成PPT&#xff0c;游戏延迟飙红&#xff0c;或是刷剧总在关键时刻转圈——这些糟心体验八成是WiFi信号在作祟。很多人第一反应是升级千兆宽带&#xff0c;却忽略了无线信号从路由器…...

3大增强型功能体系:重新定义设计师工作方式

3大增强型功能体系&#xff1a;重新定义设计师工作方式 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在当今快节奏的设计行业中&#xff0c;效率就是竞争力。这款开源Illustrator…...

Mermaid CLI 架构解析:企业级图表自动化实战指南

Mermaid CLI 架构解析&#xff1a;企业级图表自动化实战指南 【免费下载链接】mermaid-cli Command line tool for the Mermaid library 项目地址: https://gitcode.com/gh_mirrors/me/mermaid-cli Mermaid CLI 是一个基于 Node.js 和 Puppeteer 的命令行图表生成工具&a…...

BetterGI:基于计算机视觉的原神自动化辅助工具深度解析

BetterGI&#xff1a;基于计算机视觉的原神自动化辅助工具深度解析 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools Fo…...