前言

最近乘着项目不忙想赶一波时髦学习一下Python3。由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境。Python3的中文教程是参考了廖雪峰的官方网站,教程非常详细,一步步照着学习就行了,我在自己的文章中就尽量不重复了。我会在自己后续的文章中会结合一些实例来学习Python3

环境介绍

系统:Centos 7.4

编辑器:Vim

工具:Docker CE v17.09.0 & Docker Compose v1.17.0

Python版本:Docker官方Python3镜像

关于Docker CEDocker Compose的部署,可以参考我另外一篇博客Centos7.4下用Docker-Compose部署WordPress中相关部分

安装Python3容器

创建文件夹和Docker Compose脚本

先创建以下用作测试的文件夹:

$ cd /usr/ && sudo mkdir python-test && cd python-test/

创建名为docker-compose.yml的配置文件:

$ sudo vim docker-compose.yml

以下是docker-compose.yml中的内容:

version: '3'
services:
python3:
image: python:3
container_name: python3
volumes:
- /usr/python-test/my-test-scripts:/usr/src/myapp
working_dir: /usr/src/myapp
command: ["python3","test.py"]

创建用来存放Python脚本的文件夹/usr/python-test/my-test-scripts

$ sudo mkdir -p /usr/python-test/my-test-scripts

测试是否部署正确

/usr/python-test/my-test-scripts目录下创建名为test.py的文件(必须和docker-compose.yml配置中command行中的参数保持一致):

$ sudo vim /usr/python-test/my-test-scripts/test.py

在文件中输入如下Python代码:

print('hello world')

启动容器:

$ sudo docker-compose up

如果看到控制台输出了如下内容,则表示部署已经成功了:

Starting python3 ...
Starting python3 ... done
Attaching to python3
python3 | hello world
python3 exited with code 0

解读docker-compose.yml配置

如果是第一次接触DockerDocker Compose,可能对docker-compose.yml中的配置内容比较茫然,我来逐行解释一下。

version: '3'

这行表示Docker Compose脚本的版本号,这个需要和所安装的Docker版本有对应关系,详见

https://docs.docker.com/compose/compose-file/

services:

python3:

这两行表示当前这个脚本中提供的所有服务列表,因为我们这里只有一个服务内容,即:python3

image: python:3

这行表明我们需要用的Docker镜像,我们将获取name=pythontag=3Docker镜像(Docker会优先从本地镜像中寻找镜像,如果找不到,这从远程Registry下载镜像,这部分知识详见Docker官方的说明)。

container_name: python3

这行很简单,就是给即将要启动的Docker容器起个名字。

volumes:

- /usr/python-test/my-test-scripts:/usr/src/myapp

这行将宿主机中的/usr/python-test/my-test-scripts文件夹挂在到容器中的/usr/src/myapp文件夹,这样做就可以不需要进入容器(不进入容器操作是必须遵守的规范),将本地文件夹/usr/python-test/my-test-scripts中的内容即可视作是容器文件夹/usr/src/myapp中的内容。

working_dir: /usr/src/myapp

这行表示将容器中执行目录切换到/usr/src/myapp

command: ["python3","test.py"]

最后一行,即为需要执行的命令。

其实最后两行相当于在linux命令行中(当然是容器中的)执行:

$ cd /usr/src/myapp && sudo python3 test.py

由此看出,该容器由于是测试用容器,容器每次被启动,都将在容器中执行python3 /usr/src/myapp/test.py命令,所以在宿主机的/usr/python-test/my-test-scripts文件夹中我们需要创建一个名为test.py的文件(上面已经创建过了),如果需要执行不同的测试代码,则直接修改test.py中的内容之后,重新执行容器即可。

目前为止,已经非常方便快捷的部署好了我们所需的Python3的测试环境(我大概前后花了10分钟不到,而且由于使用了Docker技术,根本不用担心环境对现有系统的影响和冲突等问题),真的是非常便捷可靠!废话不多说,现在开始正式进入Python的世界吧!

Python3 学习笔记

Day 1


参考文档

Python3学习笔记 - 准备环境的更多相关文章

  1. Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

    Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,  ...

  2. python3学习笔记(7)_listComprehensions-列表生成式

    #python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...

  3. python3学习笔记(6)_iteration

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...

  4. python3学习笔记(5)_slice

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...

  5. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  6. Qt5学习笔记(1)-环境配置(win+64bit+VS2013)

    Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...

  7. openresty 学习笔记一:环境安装

    openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...

  8. Python3学习笔记01-环境安装和运行环境

    最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...

  9. python3学习笔记(9)_closure

    #python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数, ...

随机推荐

  1. Muddy Fields

     Muddy Fields Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submi ...

  2. 关于Android路由的实现

    先说一下背景,目前有需求从外部包括其他应用和WEB跳转到我们自己的APP,就这么个简单的需求-- 要实现这种外部跳转的功能,我们可以理解为打算跳转的一方有多少方式通知到APP进行相对的响应行为.所以, ...

  3. 我的第一个python web开发框架(4)——数据库结构设计与创建

    小白做好前端html设计后,马上开始进入数据库结构设计步骤. 在开始之前,小白回忆了一下老大在公司里培训时讲过的数据库设计解说: 对于初学者来说,很多拿到原型时不知道怎么设计数据表结构,这是很正常的事 ...

  4. OOP编程特性综合项目

    package SourceFile; //创建动物类(父类). public abstract class CAnimal {  public boolean mammal;   //是不是哺乳动物 ...

  5. c# 【MVC】WebApi返回各种类型(图片/json数据/字符串)

    using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage ...

  6. (图文实例)用VB.net操作SQLite数据库

    转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/) 环境: Visual Studio 社区版 64位 Windows 7系统 新建的解决方案基于 ...

  7. oracle开启一个用户

    我的工具,PL/SQL Developer(其他工具大同小意) 1.用系统管理员账号登入数据库    账号是:sys,   connect as:sysdba  登入进入如下页面. 2.查看所有用户( ...

  8. kubeernetes节点资源限制

    实际应用中发现,部分节点性能不足,某些较大的服务如果跑在这些机器上.会很快消耗该机器的内存和cpu资源,如果用uptime看一下的就会发现负载特别高(合理的范围这个值应该等于cpu个数),高到一定值就 ...

  9. 用Python解答百度测试开发算法面试题

    吾八哥本人之前有幸能接到百度北京总部的人工智能测试开发岗位的面试机会,在二面的过程中,面试官出了一道算法题,题目是:有一组"+"和"-"符号,要求将" ...

  10. python基于万象优图识别图片中的中文

    最近一直在研究光学字符识别,即OCR.最开始在谷爹那里了解到了开源的Tesseract,可以拿来识别简单的英文和数字.但是识别中文的准确率并不高. 然后从Tesseract到Tesseract.js, ...