Python3学习笔记 - 准备环境
前言
最近乘着项目不忙想赶一波时髦学习一下Python3。由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境。Python3的中文教程是参考了廖雪峰的官方网站,教程非常详细,一步步照着学习就行了,我在自己的文章中就尽量不重复了。我会在自己后续的文章中会结合一些实例来学习Python3。
环境介绍
系统:Centos 7.4
编辑器:Vim
工具:Docker CE v17.09.0 & Docker Compose v1.17.0
Python版本:Docker官方Python3镜像
关于Docker CE和Docker 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配置
如果是第一次接触Docker和Docker Compose,可能对docker-compose.yml中的配置内容比较茫然,我来逐行解释一下。
version: '3'
这行表示Docker Compose脚本的版本号,这个需要和所安装的Docker版本有对应关系,详见
https://docs.docker.com/compose/compose-file/
services:
python3:
这两行表示当前这个脚本中提供的所有服务列表,因为我们这里只有一个服务内容,即:python3
image: python:3
这行表明我们需要用的Docker镜像,我们将获取name=python且tag=3的Docker镜像(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学习笔记 - 准备环境的更多相关文章
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- python3学习笔记(7)_listComprehensions-列表生成式
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...
- python3学习笔记(6)_iteration
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...
- python3学习笔记(5)_slice
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Qt5学习笔记(1)-环境配置(win+64bit+VS2013)
Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...
- openresty 学习笔记一:环境安装
openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...
- Python3学习笔记01-环境安装和运行环境
最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...
- python3学习笔记(9)_closure
#python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数, ...
随机推荐
- 一.把传统服务做成dubbo分布式服务架构的步骤
1.把传统服务按照一定原则(根据项目的业务逻辑和场景)拆分成多个服务(主要服务是服务提供者和服务消费者,服务提供者或服务消费者的公共部分也可以拆分成其他服务,如公共DAO.公共工具类.公共实体,公共w ...
- 【框架学习与探究之消息队列--EasyNetQ(1)】
前言 本文欢迎转载,实属原创,本文原始链接地址:http://www.cnblogs.com/DjlNet/p/7603554.html 废话 既然都是废话了,所以大家就可以跳过了,这里是博主有事没事 ...
- ASP.NET没有魔法——ASP.NET MVC 与数据库之MySQL
之前介绍了My Blog如何使用ADO.NET来访问SQL Server获取数据.本章将介绍如何使用My SQL来完成数据管理. 在使用My SQL之前需确保开发环境中安装了My SQL数据库和Con ...
- Jquery EasyUI Base基础
<pre><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...
- Myeclipse 配置Tomcat 出现 “Value must be an existing directory”错误
今天上午配了一下本机上的Myeclipse的tomcat,因为我本机上有两个版本的myeclipse,一个是用来公司开发的,一个是自己玩的,本机上装了两个版本jdk和两个版本的tomcat.配置自己玩 ...
- 张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动 8×8 点阵
GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/MAX7219
- ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...
- UVa12100,Printer Queue
水题,1A过的 数据才100,o(n^3)都能过,感觉用优先队列来做挺麻烦的,直接暴力就可以了,模拟的队列,没用stl #include <iostream> #include <c ...
- PyCharm 2017 免费 破解 注册 激活 教程(附 License Server 地址)(Python 编辑器 IDE 推荐)
许多朋友都在问如何破解 PyCharm 2017 Professional 专业版,咪博士对此是坚决反对的! 不到万不得已,请不要这样做.破解之前,请拖到文章末尾,思考几个问题,想明白你确实需要这样做 ...
- Linux入门(6)——Ubuntu16.04安装atom
打开终端,依次输入: sudo add-apt-repository ppa:webupd8team/atom sudo apt-get update sudo apt-get install ato ...