PyCharm使用Docker镜像搭建Python开发环境


Posted in Python onDecember 26, 2019

在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装。本文将介绍如何利用PyCharm来连接Docker镜像,从而搭建Python开发环境。

首先,我们需要准备一下工具:

  • PyCharm专业版
  • Docker

我们用一个示例项目来演示在PyCharm中如何利用Docker镜像搭建Python开发环境。项目的截图如下:

PyCharm使用Docker镜像搭建Python开发环境

注意到,在该项目中还没有设置Python开发环境,External Libraries为空,到时候我们将用Docker中的Python环境作为该项目的Python开发环境。

第一步,我们需要制作Docker镜像,该镜像的Dockerfile文件(python_dev.build)如下:

FROM centos:7.2.1511

# author label
LABEL maintainer="jclian"

# install related packages
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && yum makecache \
  && yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
  && yum clean all

# install python 3.7.0
RUN wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz \
  && tar -xvf Python-3.7.0.tar.xz -C /usr/local/ \
  && rm -rf Python-3.7.0.tar.xz \
  && cd /usr/local/Python-3.7.0 \
  && ./configure && make && make install

# install related packages
RUN yum install -y python-pip \
  && yum install -y python-setuptools \
  && mkdir -m 755 -p /etc/supervisor/conf.d \
  && yum install -y supervisor \
  && pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
  && pip3 install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
  && pip3 install jieba -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
  && pip3 install tornado==5.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
  && yum clean all

# expost port
EXPOSE 15731

在这个CentOS系统中,我们安装了Python3.7.0,同时又安装了两个第三方模块jieba和tornado。接着我们运行build.sh脚本,内容如下:

TIMENOW=`date +%y.%m.%d.%H%M`

# 进行docker镜像打包
# -f 指定文件 , -t 指定生成镜像名称 , 冒号后为版本号 ,例子 : docker_package:17.08.01.1311
docker build -f python_env.build -t python_env:${TIMENOW} .

运行后,我们生成的Docker镜像名称为:python_env:19.12.25.0008。

接着我们在Python中使用Docker镜像配置Python Interpreter。在系统的设置界面中,选择“Project Interpreter”,点击“Project Interpreter”右侧的小齿轮,选择“Add”,截图如下:

PyCharm使用Docker镜像搭建Python开发环境

在弹出的界面中,选择“Docker”,右侧的Server一般默认为本地的Docker,等待一会儿它会提示连接成功,当然你也可以选择远程服务器的Docker,这个设置这里不再讲述。连接Docker成功后,选择“Image name”,这里选择我们刚打好的Docker镜像python_env,“Python interpreter path”为容器中的Python路径,我们这里输入“/usr/local/Python-3.7.0/python”,如下图所示:

PyCharm使用Docker镜像搭建Python开发环境

点击“OK”键,等待一会儿,然后弹出的界面如下:

PyCharm使用Docker镜像搭建Python开发环境

出现该图表示连接Docker镜像成功,同时能看到该Python环境安装的第三方模块。

最后我们再测试一下该Python环境是否能进行开发,示例的Python代码(f_write.py)如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 12:04 上午
import jieba

if __name__ == '__main__':
  sent = '三亚的风景很不错,一派南国风光。'
  print(list(jieba.cut(sent)))

输出结果如下:

PyCharm使用Docker镜像搭建Python开发环境

可以看到,Python的运行结果正常,这说明Python开发环境真的可以使用了。

本次分享到此结束,感谢大家的阅读。该演示项目已经分享至Github,网址为:https://github.com/percent4/Docker_env_test

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 中迭代器与生成器实例详解
Mar 29 Python
Python中几种导入模块的方式总结
Apr 27 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
Python实现FTP文件传输的实例
Jul 07 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
在Python中通过threshold创建mask方式
Feb 19 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 Python
Python3.10的一些新特性原理分析
Sep 15 Python
用Python生成会跳舞的美女
Jan 18 Python
python路径的写法及目录的获取方式
Dec 26 #Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 #Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 #Python
python 串口读取+存储+输出处理实例
Dec 26 #Python
使用Python串口实时显示数据并绘图的例子
Dec 26 #Python
简单了解python字符串前面加r,u的含义
Dec 26 #Python
python关于调用函数外的变量实例
Dec 26 #Python
You might like
linux中cd命令使用详解
2015/01/08 PHP
php+mysql数据库查询实例
2015/01/21 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
js GridView 实现自动计算操作代码
2009/03/25 Javascript
页面中js执行顺序
2009/11/09 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
详解Python中第三方库Faker
2020/09/25 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
中医专业应届生求职信
2013/11/17 职场文书
主持词开场白
2014/03/17 职场文书
python文件目录操作之os模块
2021/05/08 Python
Tomcat用户管理的优化配置详解
2022/03/31 Servers