栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

VSCode+Docker构建Python开发环境

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VSCode+Docker构建Python开发环境

1 优缺点 1.1 优点

写代码和调试更方便带语法提示且反应快支持直接在命令行敲命令运行一个工具同时开发调试 Python+JS+HTML....方便在各代码文件间跳转生态丰富查找替换方便:可以指定文本或文件夹可对比文件差异…… 1.2 缺点

配置有点麻烦需要一些学习成本 2 方法 2.1 前提

假设vscode已正常安装,并且已有支持Python的docker环境

2.2 在Docker内安装ssh服务

2.2.1 进入docker

$ apt-get install openssh-server
$ passwd 输入密码
$ vim /etc/ssh/sshd_config

加入以下三行:
PubkeyAuthentication yes #启用公钥私钥配对认证方式 
PermitRootLogin yes #允许root用户使用ssh登录 
PasswordAuthentication yes

$ /etc/init.d/ssh restart
$ ssh localhost
# 此时从docker可正常连接ssh接口```

2.2.2 退出docker后保存镜像

$ docker commit CONTAINER_ID IMAGE_ID:TAG

2.2.3 再次运行docker时映射端口

在docker run命令中加如下参数:

-p 8822:22 

2.2.4 在docker之外连接

$ ssh root@127.0.0.1 -p 8822

2.2.5 问题与解决

我遇到的问题是每次都要手动开一下

$ /etc/init.d/ssh restart

可将启动ssh加在/root/.bashrc中,或者build docker image时加入启动脚本。

2.3 使用VSCode连接本地container

调出扩展面板(Ctrl+Shift+X)
安装:Remote Development 插件
打开命令面板(Ctrl+Shift+P)
输入remote-ssh,选择open Configuration file,按提示输入主机地址,用户名,密码等信息(一个设置文件中允许同时添加多个连接)。
此时,左侧出现"远程资源管理器选项卡",点连接右侧的attach remote container可连接远程主机。
登录后看起来就像是打开了一个本地项目,选择文件夹作为工作目录。
同时打开多个项目时,右键点击contrainer,选择attach in new window。

2.4 连接远程主机上的docker container

连接远程主机中的docker,操作如下:
首先,远程主机端也需要启动docker并向外暴露端口如8822。
在左侧打开远程资源管理器,在第二个选项卡选择SSH Target。
打开命令面板(Ctrl+Shift+P),输入remote-ssh,选择open Configuration file,添加如下内容:

Host 192.168.1.201
  HostName 192.168.1.201
  Port 8822
  User root

保存后,左侧远程资源管理器内容被刷新,然后点该项右侧的Connect to Host...并按提示输入密码后,即可正常连接。

2.5 运行代码

写一个简单的python文件,如:

print("abcde")

然后点击左侧运行按钮,选择运行和调试,此时会提示安装Python扩展,我选择了第一个推荐"Python"。
安装后再运行,选择Python,提示设置launch.json;在左侧面板选择创建launch.json,然后选择Python,保持默认选项即可。
此时,即可通过运行按钮(播放键)直接运行程序,运行结果在下方的终端面板中显示。

2.6 Jupyter Notebook

2.6.1 基本用法

目前Jupyter已合入python插件,安装之后即可使用,输代码后点左侧的小箭头运行即可。
这样在vscode中画图的问题也解决了。

(我之前的docker里安装过jupyter,所以可能跳过了安装jupyter内核ipykernel的过程 pip3 install ipykernel)

 

2.6.2 使用小技巧

单元格右上方的小菜单,可快速设置单元格类型。限制单元格输出行数:在搜索栏找 “output.textLineLimit”,设置行数自动显示Cell的执行时间点上面横版菜单中的outline,在左下角出现markdown大纲视图仍可使用和Jupyter网页版一样的快捷键,几乎没有学习成本

Shift+回车执行dd删除单元 3 小技巧 3.1 推荐主题

浅色:Github Plus theme

3.2 快捷键

调出终端面板:Ctrl+左上角的点调出设置:Ctrl+逗号展开单元格输出:Ctrl+K,T调出风格切换:Ctrl+T选择解释器:Ctrl+Shift+P(在多个Python版本间切换)批量注释/取消注释:ctrl+/ 3.3 修改左侧字体大小

$ sudo vi /usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.css

找 .monaco-workbench .part>.content,将其字体大小改为16
3.4 开启Ctrl+滚轮缩放

设置->查找: Mouse->Editor Mouse Wheel Zoom->勾选

3.5 文件差异比较

右键选一个文件->选择进行比较
右键选另一个文件->与已选项目进行比较

3.6 发布博客

利用插件可在cnblog发布博客

4 问题与解决 4.1 问题一

问题:找不到已安装的Python库原因:这可能是由于docker中安装了多个版本Python环境解答:打开命令面板(Ctrl+Shift+P),Python 选择解析器,选择正确的版本即可 4.2 问题二

问题:如何同时打开多个项目解答:每个窗口对应一个项目,打开多个窗口,即可打开多个项目 4.3 问题三

问题:为什么我限制了Notebook输出行,但是不管用解答:如果有多个工作位置(比如有本地,有远程),需要分别设置 5 参考

Python基础——VScode + docker进行代码调试
20个好看的VSCode主题推荐
jupyter-notebooks官方教程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号