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

作者:山阴少年 时间:2021-09-24 21:41:16 

在我们平时使用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

来源:https://www.cnblogs.com/jclian91/p/12099239.html

标签:Docker,Python,PyCharm,开发环境
0
投稿

猜你喜欢

  • Quester解读17条广告效果测定

    2007-11-27 12:51:00
  • css中使用CLASS来设计网页布局

    2007-10-30 13:01:00
  • 如何提升JavaScript的运行速度(递归篇)

    2010-05-17 13:30:00
  • tensorflow 重置/清除计算图的实现

    2023-07-23 00:41:58
  • Python统计可散列的对象之容器Counter详解

    2023-09-23 18:30:50
  • 实例学习call、apply、callee用法

    2009-03-27 17:56:00
  • python用faker库批量生成假数据

    2023-04-09 13:15:46
  • python 详解如何写flask文件下载接口

    2023-05-04 21:07:06
  • python DataFrame数据格式化(设置小数位数,百分比,千分位分隔符)

    2021-02-03 21:34:10
  • SQL Server如何才能访问Sybase中的表

    2009-01-08 13:33:00
  • asp实现通过session来统计在线人数的方法

    2007-08-13 12:56:00
  • ASP读取日期单日期自动补零函数代码

    2011-02-20 10:39:00
  • 详解Python with/as使用说明

    2022-10-29 08:01:26
  • 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法

    2023-09-03 19:49:50
  • javascript实现日期3级联动下拉框选择菜单

    2023-10-19 02:15:34
  • python3 scrapy框架的执行流程

    2022-04-12 08:53:35
  • python 图片验证码代码

    2023-07-22 00:33:19
  • Python开发的实用计算器完整实例

    2023-07-25 17:11:53
  • PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡

    2023-11-15 11:46:16
  • 基于Django OneToOneField和ForeignKey的区别详解

    2021-10-17 11:01:21
  • asp之家 网络编程 m.aspxhome.com