内容纲要

查看 python 版本

python -V

sudo apt-get install python3-pip

利用alternatives机制更改 py3 为默认:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

然后

sudo update-alternatives --config python

选择完,再查看 python 版本

python -V

这样在 pip 时已经是 python3

创建虚拟环境

python2

sudo pip install virtualenv

python3

sudo pip3 install virtualenv

python2

mkdir myproject
cd myproject
virtualenv -p /usr/bin/python2 py2env

python3

mkdir myproject
cd myproject
virtualenv -p /usr/bin/python3 py3env

激活环境

source py3env/bin/activate

然后开始创建一个 Flask 应用程序

激活虚拟环境后,都可以使用 pip, 不使用 pip3

pip install uwsgi flask

vim myproject.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1 style='color:blue'>Hello There!</h1>"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

开启防火墙端口

sudo ufw allow 5000

默认在 :5000 端口上运行

python myproject.py

浏览 http://www.dev798.com:5000

创建 WSGI 入口点

cd myproject
vi wsgi.py
from myproject import app

if __name__ == "__main__":
    app.run()

测试 uWSGI 服务

我们要做的第一件事就是测试以确保 uWSGI 可以为我们的应用程序提供服务。

我们可以通过简单地传递我们入口点的名称来完成此操作。这是由模块的名称(.py通常减去扩展名)和应用程序中的可调用名称构成的。在我们的情况下,这将是wsgi:app。

我们还将指定套接字,以便它将在公共可用的接口和协议上启动,以便它将使用 HTTP 而不是uwsgi二进制协议。我们将使用之前打开的相同端口号:

uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app

浏览 http://www.dev798.com:5000

如要退出 python 环境

deactivate

后续部署到 nginx

https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04

发表评论

电子邮件地址不会被公开。 必填项已用*标注