Python | 如何使用 Docker 配合 PyCharm 搭建本地 Python 开发环境

举报
xianyuplus 发表于 2021/10/24 15:50:00 2021/10/24
【摘要】 有不少的朋友读了之前的一系列的Docker文章一脸懵逼,这和Python有什么关系?Docker可以用来减轻我们搭建环境的繁琐步骤,我们完全可以把类似selenium等环境用Docker容器部署好,在代码里直接使用远端的selenium,简单方便。 使用Docker容器中的Python环境进行开发环境准备:腾讯云CentOS 7 + Docker 修改Docker配置简易版本:编辑Docke...

有不少的朋友读了之前的一系列的Docker文章一脸懵逼,这和Python有什么关系?

Docker可以用来减轻我们搭建环境的繁琐步骤,我们完全可以把类似selenium等环境用Docker容器部署好,在代码里直接使用远端的selenium,简单方便。

使用Docker容器中的Python环境进行开发

环境准备:腾讯云CentOS 7 + Docker

修改Docker配置

简易版本:

编辑Docker相关配置文件:

vi /etc/docker/daemon.json

插入下面的配置:

注意这里是标准的json格式,格式出错Docker重启不了

{
  "hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}

重载Docker配置:systemctl daemon-reload

重启Docker:systemctl restart docker

复杂版本:
这版本用于使用上面的配置修改之后依旧无法连接的情况,咸鱼第一次配置就出现了这个情况,咸鱼在某课网的手记板块找到了答案。

这里贴一下原文地址:

参考链接:https://www.imooc.com/article/details/id/28426

具体操作如下:
编辑下面的文件:

vi /lib/systemd/system/docker.service

将文件对应配置项修改后保存:

将
ExecStart=/usr/bin/dockerd
改为
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
配置Pycharm

首先打开Pycharm中Docker的显示项:

修改Docker配置:

在下图对应的地方填入你之前编辑的Docker配置:

这里注意格式: tcp://host:ports

配置好后提示连接成功即可。

配置远程Docker的镜像作为Pycharm的解释器

点开配置,点击新增配置:

在新增项中选择Docker,这里会自动加载你连接的Docker服务中包含Python的全部镜像:

配置代码的自动上传

你以为到上面就结束了吗?解释器是配置好了,但是你的代码还在本地,所以需要配置代码自动上传到云服务器。

首先找到对应的选项,之前没有配置过的话这里选项是灰色的,需要先配置, 点击 configuration :

点击加号,填入对应的配置,填完可以测试一下是否可用:

如果不能使用,建议登录控制台,配置相关的安全组配置。

切换到隔壁的mapping选项卡,按照下图配置相关的路径和要上传到服务器上的路径:

以上都做完之后,返回本小节的第一张图,有自动上传选项将它勾起,之后当你的文件有更改就会自动上传至服务器指定的路径下。

到这里,你以为结束了那就太天真了。

解决代码自动上传后运行报错

当你上传代码后,运行后报错“无法找到对应的文件夹/文件”,这是因为这个时候我们的代码仅仅上传到了服务器上,但是我们的Python解释器是运行在容器中,而我们容器查找代码是查找的数据卷,所以这个时候就需要我们在配置中做一个简单的地址映射。

先看下上面一大段所涉及的原理图:

接下来我们开始配置,全局的地址映射:

在Docke组件中编辑配置,添加path mapping
效果:当我们配置云服务路径时会自动将我们本地路径映射过去

设置Python默认的mapping为对应的路径:

这里注意一点:这里的container path 指的是容器中路径,结合上面的原理图,全部的映射过程是 本地路径 -> 云服务器路径 -> 容器路径

以上就是本次文章的全部内容了,如果对这其中的原理有不明白的咸鱼建议可以重新温习下之前关于数据卷的部分,如果还是不明白可以直接无视原理,按图索骥直接配好了事,当然欢迎大家留言交流~ ~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。