编程入门18:Python生产环境

上一篇:编程入门17:Python环境管理

所谓“生产环境”是指应用程序正式上线运行所用的软硬件环境,多为安装了Linux操作系统的高性能计算机,集中放置在专用机房中,通过网络远程访问。开发者通常还会配置一个“模拟生产环境”来进行发布前的测试——Linux可以在实体机上安装,也可以在其他操作系统管理的虚拟机上安装(例如Win10自带的虚拟机工具Hyper-V),但最简便的方式则是打开Win10的微软应用商店直接安装——这种Linux是基于“适用于Linux的Windows子系统”(Windows Subsystem for Linux,简称WSL),启动比虚拟机更快,性能也更好。

现在就让我们使用WSL来创建一个模拟生产环境,在Win10开始菜单中点击“Windows系统”>“控制面板”>“程序”>“启用或关闭Windows功能”,在项目列表中勾选“适用于Linux的Windows子系统”,点击“确定”并重启操作系统。进入微软应用商店搜索“Linux”即可找到多个Linux发行版,它们看起来风格各异,但都使用同样的Linux内核——推荐你安装Ubuntu,对新手来说更为友好。


编程入门18:Python生产环境_第1张图片
18_linux.png

首次启动Ubuntu终端需要花点时间安装组件,随后要输入用户名和密码来创建一个账号,接下来就会显示命令提示符“$”等待你输入命令:

$ cat /etc/issue  # 显示发行版本,例如Ubuntu 18.04.1
$ uname -a  # 显示内核版本,例如Linux 4.4.0
$ pwd  # 显示当前路径
$ cd /  # 切换目录路径
$ ls  # 列出目录内容
$ df -h  # 显示文件系统
$ python3  # 运行Python3解释器
编程入门18:Python生产环境_第2张图片
18_shell.png

你可以看到Ubuntu已经自带了Python3.6.5解释器(注意对应命令为python3,在Linux中python命令默认指Python2)。与Windows不同,Linux的文件系统使用正斜杠作为路径分隔符,所有路径都以根目录“/”为起点组成树形结构,例如leo用户目录路径为“/home/leo”,输入时可以按TAB键自动补全命令和路径。注意:如果需要改变用户目录以外的东西,例如进行系统配置和软件安装,请在命令前加上“sudo”即以系统用户身份运行——Ubuntu使用apt命令管理软件包,我们首先要做的事是修改apt源列表文件:

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vim /etc/apt/sources.list

以上命令先对apt源列表文件做复制备份,再用文本编辑器vim打开。请先输入“:%d”清空内容,再按“i”进入插入模式,复制以下文本并在窗口中右击粘贴,设置从中国大陆的镜像源(例如腾讯云)下载软件包:

deb http://mirrors.cloud.tencent.com/ubuntu/ bionic main restricted
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic-updates main restricted
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic universe
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic-updates universe
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic multiverse
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic-updates multiverse
#deb http://mirrors.cloud.tencent.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.cloud.tencent.com/ubuntu/ bionic-security main restricted universe multiverse

按“ESC”退出插入模式,再输入“:wq”保存并退出,接下来就可以执行apt命令更新和安装Ubuntu软件包了:

$ sudo apt update  # 更新软件包列表
$ sudo apt list --upgradable  # 查看哪些软件包可更新
$ sudo apt upgrade python3.6  # 更新Python3.6,不指定名字则更新全部软件包
$ sudo apt install python3-pip  # 安装Pyhon3.6的pip
$ python3 -m pip list  # 查看Python3.6的第三方包列表
$ sudo apt install python3.7  # 安装Python3.7
$ sudo apt install python3.7-venv  # 安装Python3.7的venv
$ python3.7 -m venv vTest  # 基于Python3.7创建一个虚拟环境
$ source vTest/bin/activate  # 激活一个虚拟环境

以上命令把Python3.6.5更新到3.6.6,并安装了Python3.7.0。你可以看到Ubuntu把Python分成多个模块,例如pip和venv都是需要额外安装的——另外也要记得修改Python软件包的镜像源,Ubuntu下的配置文件是/etc/pip.conf。

下面的示例程序在终端中输出彩色文本,这种语法是Unix或Linux特有的:

"""xtextcolor.py 在*nix终端中输出彩色文本
(使用第三方包colorama也可以在Windows中实现此效果)
"""
# from colorama import init
# init()
print("\033[1;30m灰色文本\033[0m")
print("\033[1;31m红色文本\033[0m")
print("\033[1;32m绿色文本\033[0m")
print("\033[1;33m黄色文本\033[0m")
print("\033[1;34m蓝色文本\033[0m")
print("\033[1;35m品红色文本\033[0m")
print("\033[1;36m青色文本\033[0m")
print("\033[1;37m白色文本\033[0m")
print("\033[1;37;40m白色文本黑色背景\033[0m")
print("\033[1;36;41m青色文本红色背景\033[0m")
print("\033[1;35;42m品红色文本绿色背景\033[0m")
print("\033[1;34;43m蓝色文本黄色背景\033[0m")
print("\033[1;33;44m黄色文本蓝色背景\033[0m")
print("\033[1;32;45m绿色文本品红色背景\033[0m")
print("\033[1;31;46m红色文本青色背景\033[0m")
print("\033[1;30;47m灰色文本灰色背景\033[0m")

接下来我们练习通过网络访问Linux主机,这需要在Ubuntu上配置SSH服务:

$ sudo /usr/bin/ssh-keygen -A  # 生成主机密钥
$ sudo vim /etc/ssh/sshd_config  # 编辑SSH服务配置

将配置文件中的PasswordAuthentication改为yes,允许使用密码登录(默认只允许密钥文件),然后启动SSH服务:

$ sudo service ssh start

现在打开Windows命令提示符输入以下命令,作为指定用户登录指定IP地址的主机(“127.0.0.1”是个指向本机的特殊IP地址):

ssh [email protected]

你也可以安装其他更专业的SSH客户端,例如PuTTY和Bitvise SSH Client https://www.putty.org/。使用Bitvise SSH Client登录Ubuntu运行示例程序的效果如下:

编程入门18:Python生产环境_第3张图片
18_ssh.png

WSL是个好东西,不过只适用于学习和测试。如果你想要真正的生产环境,还是得有自己的机房,或者去买现成的云主机。

——编程原来是这样……

编程小提示:Linux桌面环境

Linux系统也可以安装桌面环境,虽然WSL的终端窗口不支持图形界面,但是可以通过远程桌面服务来使用——推荐桌面环境Xfce,这据说是Linux的创造者Linus Torvalds本人的选择哦:

$ sudo apt install xfce4 xrdp fonts-wqy-microhei

Xfce大概要占用600MB空间,相对于GNOME和KDE等其他桌面环境来说算是相当小巧轻便。下载安装完成后需要编辑远程桌面服务配置文件/etc/xrdp/xrdp.ini,将默认端口3389改为13389,免得WSL和Windows的远程桌面服务互相冲突。然后执行以下命令启动远程桌面服务:

$ echo "xfce4-session" > ~/.xsession
$ sudo service xrdp start

现在就可以使用远程桌面客户端例如Win10自带的mstsc连接127.0.0.1:13389,登录到Xfce桌面环境了:


编程入门18:Python生产环境_第4张图片
18_xfce.png

在桌面环境中也可以打开终端窗口执行命令,例如安装Firefox浏览器:

$ sudo apt install firefox

今后你也可以选择在实体机上安装Linux作为日常主力系统,推荐Xubuntu——就是集成了Xfce桌面环境的Ubuntu https://xubuntu.org/

你可能感兴趣的:(编程入门18:Python生产环境)