目标:
一、使用XShell登录连接通过Vagrant所安装的CentOS
二、使用Pyenv,在Vagrant CentOS中安装Python3.6.6(CentOS默认安装的Python版本是2.7)
三、在Vagrant CentOS中编写一个简单的Python程序
四、编写一个简单的Python Flask Web程序,并部署到云服务器上
开始之前…
在开始之前请确保您已完成如下配置:
- 已购买阿里云提供的云服务器(ECS),并确保其能通过XShell连接。(关于使用XShell连接云服务器的方法请参考阿里云官方帮助文档)
- 已安装Xftp(可便捷地管理云主机文件)
- 已完成前几个实验
一、使用XShell登录连接通过Vagrant所安装的CentOS
- 打开VirtualBox管理器,以无界面模式启动使用Vagrant安装的CentOS,直到其状态变为“正在运行”。
- 打开XShell,连接该虚拟机。配置如下:
主机:127.0.0.1
端口:2222
二、使用Pyenv,在Vagrant CentOS中安装Python3.6.6
(一)安装Pyenv
- 进入XShell,连接虚拟机终端,root登录
- 安装git:
yum -y install git
- 安装依赖包:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
- 安装pyenv包:
mkdir ~/.pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
- 定义环境变量:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
- 添加pyenv init到shell中:
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
- 重启shell:
exec $SHELL -l
- 查看pyenv支持的全部Python版本,同时也用来测试是否安装成功:
pyenv install --list
(二)使用Pyenv安装Python3.6.6
- 安装pip:
yum -y install epel-release
yum -y install python-pip
yum clean all
- 安装好库文件:
yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel
- 安装gcc:
yum install -y gcc
- 安装Python3.6.6:
pyenv install 3.6.6
- 查看安装结果(处于激活状态的版本前以 * 标示):
pyenv versions
- 更新数据库
pyenv rehash
- 设置全局python版本(global)
pyenv global 3.6.6
参考
pyenv命令列表
三、在Vagrant CentOS中编写一个简单的Python程序
python
print('HelloWorld!')
- 按Ctrl+D可退出
四、编写一个简单的Python Flask Web程序,并部署到云服务器上
以下操作在Windows中完成:
(一)在本地使用python flask搭建一个简单的web应用
(1)安装virtualenv(可避免各项目的不同依赖包污染系统环境)
- 以管理员身份打开cmd
- 更新pip(可选):
python -m pip install --upgrade pip
- 通过pip安装virtualenv:
pip install virtualenv
(2)实现一个简单的Python Flask Web程序
由于本次实验仅要求搭建一个简单的Python Flask Web程序,为了快速理解flask基本流程,可使用方法一快速部署一个Flask Web程序,也可以使用PyCharm在virtualenv虚拟环境下创建一个完整的Flask Web程序。
方法一:直接完成一个简单的flaskApp部署(全局环境安装flask)
操作步骤请参考此文:
注意:
- 第3步“简单的服务器代码”中编写的main.py可直接使用记事本写,保存后将后缀名改成.py即可
- 第4步“设置FLASK_APP路径并启动服务器程序”请先直接在cmd使用cd命令进入main.py所在的文件夹,再直接用如下代码即可设置:
set FLASK_APP=main.py
方法二(未完成):使用PyCharm搭建一个完整的flaskApp(使用virtualenv虚拟环境)
- 使用PyCharm创建一个Flask应用程序,此处可直接使用一个新的virtualenv虚拟环境,如下图所示:
- 打开PyCharm的终端(Terminal)窗口,即可直接在此窗口中用pip安装项目依赖。现在我们先安装flask:
pip install flask
- 。。。//正在施工。。。
参考
virtualenv介绍及基本使用 - CSDN博客
python flask搭建web应用 - CSDN博客
windows环境下使用virtualenv对python进行多版本隔离 - 丰泽园的天空 - 博客园
(二)将python flask搭建的web应用部署到云服务器上(使用virtualenv虚拟环境)
- 打开XShell,以root用户身份连接到你的云服务器(云服务器使用CentOS7.4系统)
- 更新系统应用:
yum -y update
- 安装epel扩展源:
yum -y install epel-release
- 安装pip:
yum -y install python-pip
- 更新pip:
pip install --upgrade pip
- 安装virtualenv:
pip install virtualenv
- 测试是否安装成功:
virtualenv -h
- 安装wget:
yum -y install wget
- 安装Python3.6.6:
CentOS安装Python可参考此文:linux-Centos7安装python3并与python2共存 - JahanGu - 博客园
注意:
- 务必先安装wget:yum -y install wget
- 此文安装的版本为3.6.2,记得将他的命令中的所有“3.6.2”替换成“3.6.6”
- 出现[y/N]时直接敲y,回车即可
- 安装Nginx:
yum -y install openssl-devel
yum -y install nginx
- 启动Nginx:
service nginx start
- 使用浏览器输入云主机服务器地址,出现如下画面即表示已成功安装Nginx:
注意:如果浏览器显示“拒绝访问”,请检查云服务器控制台的安全组规则,放通全部入站端口
- 创建虚拟环境::virtualenv [指定虚拟环境的python版本] [虚拟环境名称]。
virtualenv --python=python env1
cd env1/
source bin/activate
python -V
注:此处直接指定Python版本为“python”是因为之前已将系统python命令链接到python3.6.6 - 安装flask:
pip install flask
- 安装Gunicorn:
pip install gunicorn
- 此时可将你创建的Flask项目使用Xftp等工具上传到env1文件夹:
XShell连接云服务器后点击“新建文件传输按钮”,将本地项目文件拖拽上传即可
此处我直接在env1下创建一个简单的flask应用"test.py":(vi test.py,再按i进入插入模式,完成后按esc,冒号,wq,回车)
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return "hello world" @app.route('/hello') def hello111(): return hello() if __name__=='__main__': app.run()
- 使用gunicorn运行基于flask的test.py文件
gunicorn -w 4 test:app -b 0.0.0.0:8080
- 使用浏览器访问ip地址:8080,出现以下页面,则部署成功:
参考
CentOS下配置python3+flask的web服务环境 - CSDN博客
CentOS使用virtualenv搭建独立的Python环境-python虚拟环境 - 东邪西毒 - 博客园
阿里云快速部署Flask应用 - 一只猿 - 前端攻城尸 | 安全研究员 | 硬件控 | 业余极客 | 开源拥护者
(三)使用Nginx
//正在施工