zoukankan      html  css  js  c++  java
  • Python项目实践--环境准备02 Centos下的Python+Flask环境部署

    一、Python环境

    1、安装依赖项

    # yum -y install zlib zlib-devel bzip2-devel openssl-devel ncurses ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libuuid-devel libffi-devel

    2、下载代码

    解压并进入代码目录
    tar zxvf xxx

    3、配置

    在 ./configure 操作前,先进行配置
    export LANG=zh_CN.UTF-8
    export LANGUAGE=zh_CN.UTF-8
     
    然后添加配置
    ./configure --prefix=/usr/python

    4、安装

    make
    make install
     
    重新安装清理
    make clean 
    make distclean

    5、加上软链接

    ln -s /usr/python/bin/python3 /usr/bin/python3
    ln -s /usr/python/bin/pip3 /usr/bin/pip3

    二、虚拟环境

    pip install virtualenv
    pip install virtualenvwrapper
     
    如果没有pip则
    pip3 install virtualenv
    pip3 install virtualenvwrapper
     
    配置环境变量
    用vim打开~/.bashrc
    export WORKON_HOME=~/.virtualenvs
    source /usr/bin/virtualenvwrapper.sh 
    或者
    source /usr/python/bin/virtualenvwrapper.sh
    不同的系统virtualenvwrapper.sh的位置可能会不一样
    注意:我安装的时候由于本机没有python,因此都安装到了Python3下
    virtualenv和virtualenvwrapper的路径为
    /usr/python/bin/virtualenv
    /usr/python/bin/virtualenvwrapper.sh
     
    加上软链接
    ln -s /usr/python/bin/virtualenv /usr/bin/virtualenv
    ln -s /usr/python/bin/virtualenvwrapper.sh /usr/bin/virtualenvwrapper.sh
     
    source ~/.bashrc
    执行.bashrc使文件生效
     
    创建PPCMS的虚拟环境(根据实际需要给虚拟环境命名)
    mkvirtualenv --python=/usr/bin/python3  ppcms

    三、Flask环境

    切换到虚拟环境下
    workon  ppcms
     
    安装Flask
    pip install Flask
    pip install pymysql
    pip install flask-sqlalchemy
    pip install pyjwt  # jwt包
    pip install requests
     
    可合并为
    pip install Flask pymysql flask-sqlalchemy pyjwt requests

    四、服务部署

    安装Gunicorn
    pip install gunicorn

    五、Gunicorn启动脚本

    gunicorn 命令启动
    简单地,gunicorn可以通过gunicorn -w 4 -b 127.0.0.1:4000 run:app启动一个Flask应用。其中,
    -w 4是指预定义的工作进程数为4,
    -b 127.0.0.1:4000指绑定地址和端口
    run是flask的启动python文件,app则是flask应用程序实例
     
    对应的gunicorn.py配置文件
    # gunicorn.py
    
    debug = True
    
    daemon = True
    
    bind = '127.0.0.1:8001'      # 绑定ip和端口号
    # backlog = 512                # 监听队列
    chdir = '/data/ppcms/ppcms'  # gunicorn要切换到的目的工作目录
    timeout = 30      # 超时
    # worker_class = 'gevent' # 使用gevent模式,还可以使用sync 模式,默认的是sync模式
    
    # workers = multiprocessing.cpu_count() * 2 + 1    # 进程数
    # threads = 2 # 指定每个进程开启的线程数
    loglevel = 'debug'   # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
    access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'    # 设置gunicorn访问日志格式,错误日志无法设置
    
    """
    其每个选项的含义如下:
    h          remote address
    l          '-'
    u          currently '-', may be user name in future releases
    t          date of the request
    r          status line (e.g. ``GET / HTTP/1.1``)
    s          status
    b          response length or '-'
    f          referer
    a          user agent
    T          request time in seconds
    D          request time in microseconds
    L          request time in decimal seconds
    p          process ID
    """
    
    pidfile = "/data/log/ppcms.pid"
    accesslog = "/data/log/gunicorn_ppcms_access.log"      # 访问日志文件
    errorlog = "/data/log/gunicorn_ppcms_error.log"        # 错误日志文件
    View Code
     

    六、nginx配置

    upstream到本地指定端口即可。
    location / {
        proxy_pass http://127.0.0.1:8000 ; # 这里是指向gunicorn host的服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
     
  • 相关阅读:
    Stream中的map
    项目中的process.bpmn的读-过程
    windows10打开switchHost,提示无修改权限
    Windows10安装node.js
    工作中的小发现
    启动redis
    call apply bin 的区别
    利用promise 让 函数按序执行
    uni-app 小程序
    插件 Generate css tree
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12579671.html
Copyright © 2011-2022 走看看