Ubuntu 16.04 搭建 Python Flask 运行环境
悠扬的幻想天空 - 博客
December 3, 2018 日常 • 作者:悠扬
原本是想用docker来搭建环境的,但是经过多次失败和时间比较赶,无奈选择放弃。
安装 Python
Ubuntu 16.04 的默认环境已经预装 python2.7.12 和 python3.5.2 。
可以输入 python
查看当前版本:
root@iZmlhjuzmr14cqZ:~# python
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
按 CTRL+D
退出 Python 命令行终端。
安装 pip
pip 用于安装一些基于python 应用的软件工具
sudo apt-get install pip
安装 VirtualEnv
不同的项目可能会引用各种不同的依赖包,VirtualEnv 可以为每个Python应用创建独立的开发环境,使他们互不影响,Virtualenv 能够做到:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
sudo pip install virtualenv
假定我的项目目录叫 /home/www/my_flask
,首先安装虚拟环境
cd /home/www/my_flask
virtualenv venv
在项目目录下就会建立一个新的 venv 目录,里面就是运行python 的基本环境的工具与指令,和包。 然后启用该环境,使用当前命令行状态进入虚拟环境,进入虚拟环境后,一切安装python的操作都会将包和引用装在虚拟环境内,而不会影响到全局的python 环境。
source venv/bin/activate
调用 activate
指令后命令符前就会出现 (venv) 字样。 可通过 deactivate
退出虚拟环境。
安装 Flask
当前依然在 home/www/my_flask
目录下,创建一个 requirements.txt 文件,我这里选择的是 vi 命令。
vi requirements.txt
然后填写以下内容并保存:
Flask==0.10.1
Flask-Login==0.2.11
Flask-Mail==0.9.1
Flask-Moment==0.4.0
Flask-PageDown==0.1.5
Flask-SQLAlchemy==2.0
Flask-Script==2.0.5
Flask-WTF==0.10.2
Flask-Cache==0.13.1
Flask-Restless==0.15.0
Flask-Uploads==0.1.3
Jinja2==2.7.3
Mako==1.0.0
Markdown==2.5.1
MarkupSafe==0.23
SQLAlchemy==0.9.8
WTForms==2.0.1
Werkzeug==0.9.6
html5lib==1.0b3
itsdangerous==0.24
six==1.8.0
awesome-slugify==1.6
安装清单文件:
pip install -r requirements.txt
启动项目
接下来就是上传你的 Flask 的项目文件,我写了单个文件的demo上去跑结果发现打不开,最后上传整个项目才行。
Python 启动!
python app.py runserver
然后在本地电脑上输入服务器IP:端口,就能看到运行成功了。
好了,可以关掉 SSH,再刷新下网页,结果发现端口不运行了。
Screen
在使用ssh或者telnet登录远程主机后,执行一些耗时的命令,如果此时ssh或者telnet中断,那么远程主机上正在执行的程序或者说命令也会被迫终止。比如你远程登录之后需要执行一个耗时的指令如svn checkout,这时马上又要下班了,你要关闭你的电脑走人了,怎么办?
screen能够很好地解决这个问题。screen也叫虚拟终端,可以在一个物理终端上实现多个虚拟终端的效果。
新建一个screen并运行python
apt install screen
screen
python /home/www/my_flaskapp.py runserver
按 CTRL+A+D
可以切换出来,刚才新建的程序还会在后台跑。
完事了
参考:
阿里云部署 Flask + WSGI + Nginx 详解