Ubuntu下创建Flask环境

2017-11-02  本文已影响0人  发条蛙

在Ubuntu下创建Flask环境总共分为如下几个部分:

背景环境准备

  1. 安装必要工具:
    sudo apt-get install aptitude
    sudo aptitude install python3-pip
    

Flask安装配置

  1. 虚拟环境安装:
    pip install virtualenv virtualenvwrapper
    
  2. 初始化虚拟环境,写入如下内容到~/.bashrc文件:
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export WORKON_HOME=~/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
    
    然后执行source ~/.bash.rc以启用该配置。
    1. 这里需要注意的是如果是当前使用的是anaconda,则只需要加入如下行到~/.bashrc即可:
      source ~/anaconda3/bin/virtualenvwrapper.sh
      
  3. 创建虚拟环境:
    mkvirtualenv firstflask
    
  4. 进入虚拟环境并暗转工具:
    pip install Flask
    
  5. 创建文件~/firstflask/firstflask.py并写入如下内容:
    from flask import Flask
    application = Flask(__name__)
    
    
    @application.route("/")
    def index():
        return "Hello World!"
    
    if __name__ == "__main__":
        application.run()
    

环境管理

这里使用到了virtualenv进行Python开发环境的管理,故有如下命令用于操作:

  1. 进入环境:
    workon firstflask
    
  2. 退出环境:
    deactivate
    
    1. 对于anaconda环境而言,需要首先作如下操作,才能保证使用该命令退出环境成功:
      cd  ~/anaconda3/bin
      mv deactivate conda-deactivate
      

uWSGI安装配置

  1. 安装uwsgi

    sudo pip3 install uwsgi
    
  2. 创建配置文件/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
    
  3. 创建启动脚本/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
    
  4. 赋予启动脚本可执行权限:

    sudo chmod +x /etc/init.d/uwsgi
    
  5. 设置启动权限:

    update-rc.d uwsgi defaults
    

Nginx安装配置

  1. 安装nginx:

    sudo aptitude install nginx
    
  2. 编辑配置文件/etc/nginx/nginx.conf,在http块中,注释掉如下行:

    include /etc/nginx/conf.d/*.conf;
    
  3. 创建文件/etc/nginx/sites-available/firstflask,内容如下:

    server {
        listen 80;
    
        location / {
            include uwsgi_params;
            uwsgi_pass unix:/home/ubuntu/firstflask/firstflask.sock;
        }
    }
    
  4. 使用如下命令启用firstflask的配置:

    sudo ln -s /etc/nginx/sites-available/firstflask /etc/nginx/sites-enabled/
    

    这里务必记得删除目录/etc/nginx/sites-enabled/下的default链接。

  5. 进行配置检查并重启服务:

    sudo service nginx configtest
    sudo service nginx restart
    

安装完成测试

  1. 访问如下链接可以出现Hello World!即可:
    http://localhost
    

参考

  1. 参考链接:
    https://gist.github.com/bluekvirus/62691d0bed98f45fe153a600e127e37b
上一篇下一篇

猜你喜欢

热点阅读