在Ubuntu下创建Flask环境总共分为如下几个部分:
背景环境准备
- 安装必要工具:
sudo apt-get install aptitude sudo aptitude install python3-pip
Flask安装配置
- 虚拟环境安装:
pip install virtualenv virtualenvwrapper
- 初始化虚拟环境,写入如下内容到
~/.bashrc
文件:
然后执行export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export WORKON_HOME=~/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
source ~/.bash.rc
以启用该配置。- 这里需要注意的是如果是当前使用的是anaconda,则只需要加入如下行到
~/.bashrc
即可:source ~/anaconda3/bin/virtualenvwrapper.sh
- 这里需要注意的是如果是当前使用的是anaconda,则只需要加入如下行到
- 创建虚拟环境:
mkvirtualenv firstflask
- 进入虚拟环境并暗转工具:
pip install Flask
- 创建文件
~/firstflask/firstflask.py
并写入如下内容:from flask import Flask application = Flask(__name__) @application.route("/") def index(): return "Hello World!" if __name__ == "__main__": application.run()
环境管理
这里使用到了virtualenv
进行Python开发环境的管理,故有如下命令用于操作:
- 进入环境:
workon firstflask
- 退出环境:
deactivate
- 对于anaconda环境而言,需要首先作如下操作,才能保证使用该命令退出环境成功:
cd ~/anaconda3/bin mv deactivate conda-deactivate
- 对于anaconda环境而言,需要首先作如下操作,才能保证使用该命令退出环境成功:
uWSGI安装配置
-
安装
uwsgi
:sudo pip3 install uwsgi
-
创建配置文件
/etc/uwsgi/sites/firstflask.ini
,内容如下:project = firstflask base = /home/ubuntu chdir = %(base)/%(project) home = %(base)/.virtualenvs/%(project) module = %(project):application master = true processes = 8 cheaper = 2 cheaper-initial = 4 cheaper-step = 1 cheaper-algo = spare cheaper-overload = 5 socket = %(base)/%(project)/%(project).sock chmod-socket = 664 vacuum = true
-
创建启动脚本
/etc/init/uwsgi
,内容如下:#!/bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin EXEC=/usr/local/bin/uwsgi CONFDIR=/etc/uwsgi/sites PIDFILE=/var/run/uwsgi.pid LOGFILE=/var/log/uwsgi.log UID=ubuntu GID=www-data case "$1" in start) echo "Starting uWSGI server..." $EXEC --emperor $CONFDIR --pidfile $PIDFILE --daemonize $LOGFILE --uid $UID --gid $GID echo "uWSGI started" ;; stop) echo "Stopping..." $EXEC --stop $PIDFILE --vacuum ;; *) echo "Please use start or stop as first argument" ;; esac
-
赋予启动脚本可执行权限:
sudo chmod +x /etc/init.d/uwsgi
-
设置启动权限:
update-rc.d uwsgi defaults
Nginx安装配置
-
安装nginx:
sudo aptitude install nginx
-
编辑配置文件
/etc/nginx/nginx.conf
,在http
块中,注释掉如下行:include /etc/nginx/conf.d/*.conf;
-
创建文件
/etc/nginx/sites-available/firstflask
,内容如下:server { listen 80; location / { include uwsgi_params; uwsgi_pass unix:/home/ubuntu/firstflask/firstflask.sock; } }
-
使用如下命令启用
firstflask
的配置:sudo ln -s /etc/nginx/sites-available/firstflask /etc/nginx/sites-enabled/
这里务必记得删除目录
/etc/nginx/sites-enabled/
下的default链接。 -
进行配置检查并重启服务:
sudo service nginx configtest sudo service nginx restart
安装完成测试
- 访问如下链接可以出现
Hello World!
即可:http://localhost
网友评论