教你完整搭建Python web 环境

作者: bd6b5cde5ce9 | 来源:发表于2017-12-03 15:33 被阅读168次

    大家好,我是个非专业的码农,我现在在一家survey单位上班。

    15年开始写程序,主要写管理系统方面的网站。之前一直用asp.net 构建网站,说是asp.net其实用到它最多的就是一个数据绑定和repeater控件了,前端用的都是现成的js框架。

    为什么开始接触Python?

    想接触的其他系统方面的东东。

    目的,希望能够在自己新买的macbook pro上工作。

    我的目标 开发web \ios\android\exe 能够在一台电脑上进行

    python 可以 满足我 web开发 exe两者 

    说了这么多废话,下面记录一下我这几天的搭建python web环境的过程,顺便温故知新一下

    一、系统准备

    (1)服务器

          我租用的某云服务器,ubuntu 系统刚开接触的肯定会比较晕,像我现在一样,所以上来可以安装个图形界面程序

          apt-get install ubuntu-desktop

          安装完是不是轻松多了。

    (2)客户端

         我的是17款MacBook Pro  😄 重要的是学习这个过程

    二、安装python

          这两个系统好像都自带了。好吧。

          苹果没有带python3, ubuntu带了3.5版本

    苹果:brew install python //请自行百度homebrew

    ubuntu :apt-get install python

    (1)关于两个版本的切换

    其实你只要 用 python3的时候用python3就好了 

    (2)使用virtualenv

    这个具体大家去了解 😄,我个人理解就是一个包,可以方便的让你在2,3之间来回切换

    安装:pip install virtualenv

    创建: virutualenv -p python3 python3env //如果系统只有一个python3 直接virtualenv python3env就可以了

    我在服务器ubuntu环境中老是failed,在后面加一个 --no-setuptools,后面需要的时候再在虚拟环境中 pip install 

    具体原因不清楚 有可能是版本兼容问题

    激活:source python3env/bin/activate

    回到主程序:deactivate

    不用了直接删除就可以了

    三、选择一款web框架

    我选择了flask 

    安装:pip install Flask

    可以从网上找一个flask demo

    git clone git@github.com:xm/xxx.git

    flask框架具体怎么用,大家百度下

    四、服务器配置

    在这里我选择了gunicorn and nginx and supervisor

    欢迎大神介绍一下这几个工具 🙏

    gunicorn 前面为什么加nginx?

    nginx与guicorn的具体区别

    supervisor 进程管理利器

    安装 虚拟环境下

    pip install gunicorn

    apt-get install nginx

    pip install supervisor

    //supervisor 目前支持python2  所以要建一个python2的虚拟环境 在该环境下安装supervisor

    (1)nginx 配置

    首先编辑配置文件

    这里有几个 etc/nginx/nginx.conf ,etc/nginx/sites-available/default ,etc/nginx/sites-enabled/default

    我们可以在 sites-available中建立各个项目的配置文件

    具体配置根据个人情况 可以百度一下

     然后链接到sites-enabled中

    最后被全部include到nginx.conf下

    ln -s etc/nginx/sites-available/selfdefine etc/nginx/sites-enabled/selfdefine

    或直接在/etc/nginx/conf.d/下新建配置文件

    查看Nginx的版本号:nginx -V

    启动Nginx:start nginx

    快速停止或关闭Nginx:nginx -s stop

    正常停止或关闭Nginx:nginx -s quit

    配置文件修改重装载命令:nginx -s reload #如关闭了nginx会报错,此时先nginx

    ps -ef | grep nginx #查看运行的nginx

    (2)supervisor配置操控gunicorn

    gunicorn启动flask的操作非常简单,

    guincorn -w 3 yourapp:app -b 127.0.0.1:8000

    3 是2*1个内核+1 yourapp是你的py启动文件名 app 是你里面的 app.run

    这样我们的程序就启动了

    但用supervisor更加方便

    配置好后 每次

    start myapp

    restart myapp

    stop myapp

    配置方法具体我也不介绍了,自行百度吧

    就是把command命令链接到里面 

    安装完后首先 生成myapp所需的配置文件模版

    (python3env)$echo_supervisord_conf > supervisord.conf

    然后修改这个配置文件(python3env)$vim supervisord.conf //也可以用nano命令

    可以在配置文件最后加上以下语句用来关联相关的配置文件[include]

    files =etc/self/*.conf

    这样每次加载到时候都会加载self下到conf文件

    #[program:pythonapp]

    #command=%(ENV_HOME)s/flasky/py3env/bin/gunicorn -w 3 hello:app -b 127.0.0.1:8000

    #stdout_logfile 为设置输出的日志文件

    保存后准备启动:

    supervisord -c supervisord.conf # 指定配置文件启动supervisord

    supervisorctl  -c supervisord.conf //启用控制

    status start restart stop reload update //常用命令

    五、上传部署flask项目

    Mac 与 服务器之间的文件传输

    打开终端命令,输入

    sftp:username@serverip

    put 客户端文件 服务器文件

    put -r 客户端文件夹 服务器文件夹

    六、开始运行

    supervisorctl -c supervisors.conf

    项目文件更新后,由于缓存机制可能不会立即见到效果

    解决办法:

    一是nginx缓存配置 //自行百度

    二是利用supervisor restart myapp

    结束语

    刚刚开始研究,希望大家能给出意见和建议,共同进步交流

    相关文章

      网友评论

        本文标题:教你完整搭建Python web 环境

        本文链接:https://www.haomeiwen.com/subject/cyeabxtx.html