debian下python flask环境搭建

本文详细介绍了在Debian 8环境下,使用Python 3.4版本和Flask框架搭建开发环境的步骤,包括安装pip、virtualenv、创建虚拟环境、安装uWSGI和Nginx,以及配置和运行项目的详细过程。通过遵循这些步骤,开发者可以成功部署并运行Flask应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来说明开发环境:

  • debian 8 jessie
  • python 3.4版本
  • virtualenv,pip
  • uwsgi 2.0.12
  • nginx 1.8(自行编译安装)

环境搭建步骤:

-已经安装python(debian自带)
-安装pip
-安装virtualenv
-创建项目目录
-安装uwsgi
-安装nginx


安装pip

$ sudo apt-get install python-pip

安装virtualenv

$ sudo pip install virtualenv

创建虚拟环境并生效

$ mkdir example_flask
$ virtualenv venv (默认创建python2.7的环境)

或者是

$ virtualenv -p python3 venv (创建python3.4的环境)

虚拟环境生效:

$ source ./venv/bin/activate

这个时候命令行头部会添加:

(venv) yourLinux@adsfas:~ $ 

这时虚拟环境生效!

项目目录

www/
└── exmaple_flask  
│   ├── logs  // 日志目录
│   └── venv  // 虚拟环境(前面已经创建)
│   │   ├── bin
│   │   │         ├── activate
│   │   │         ├── easy_install
│   │   │         ├── gunicorn
│   │   │         ├── pip
│   │   │         └── python
│   │   ├── include
│   │   │          └── python2.7 -> /usr/include/python2.7
│   │   ├── lib
│   │   │         └── python2.7
│   │   ├── local
│   │   │         ├── bin -> /home/shenye/shenyefuli/bin
│   │   │         ├── include -> /home/shenye/shenyefuli/include
│   │   │         └── lib -> /home/shenye/shenyefuli/lib
│   └── app  //Flask 程序目录
│   │           └──  __init__.py //这是程序包文件。这个目录下还有其它的文件此处略过
│   ├── manager.py // 管理文件   
|   |--project_nginx.conf // nginx配置文件
|   |--project_uwsgi.ini // uWSGI配置文件
│   ├── requirements.txt  // 依赖库文件      

按照文件目录先进行创建,最后再一并说明代码编写以及配置

安装uWSGI

(venv) yourd@dsfas:~$ pip install uWSGI

安装nginx

直接安装:

(venv) youtdebian@aasdfa:~$ sudo apt-get update
(venv) youtdebian@aasdfa:~$ sudo apt-get install nginx

从源码安装:参考这篇文章

编写代码

首先从app文件夹下的 init.py 来开始编写代码

# __init__.py
#!/usr/bin/env python
# encoding: utf-8

from flask import Flask  

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello World"    

然后在项目根目录下,编写manager.py文件代码

# manager.py
# !/usr/bin/env python
# encoding: utf-8

from app import app

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

这样我们的代码就写好了,你可以在项目根目录下执行下面代码运行:

(venv) yourdebian@adfa:~$ python manager.py

然后在浏览器中访问127.0.0.1:5000,即可看到显示”Hello World”的字符串,说明我们的代码正确有效!

配置nginx

这里我们先从nginx进行配置,由于我是从源码安装的,只是文件所在目录有所不同。
那么我们先来编辑根目录下的project_nginx.conf文件:

server { 
    listen  80;
    server_name localhost;
    charset utf-8;
    client_max_body_size 75M;
    location / { try_files $uri @yourapplication; }
    location @yourapplication {
         include uwsgi_params;
         uwsgi_pass unix:~/project_example_uwsgi.sock
         # 上面一行是创建项目根目录下的socket文件,通过socket实现代理
     }    
}      

然后需要将这个文件通过链接文件的方式放到nginx安装目录下:

(venv) yourdebian@afdsa:~$ sudo ln project_nginx.conf /usr/local/nginx/conf/

光这样操作是不行的,还需要的内容是将配置文件加载到启动文件中。那么在启动文件中就需要添加这样一行代码:

http {
    include ./project_nginx.conf;
    ..........
}

这时候是不能启动nginx运行的,如果运行nginx的话,会报502错误。原因在于配置文件中的 .sock 文件并未创建。那么需要我们在下面设置完uWSGI的配置文件后才可以运行。

配置uWSGI

直接上配置文件:

[uwsgi] 
#application's base folder
base = ~/project_python/project_flask/ # 项目根目录

#python module to import
app = manager     # 启动app名称
module = %(app)   # app实例
home = %(base)/venv_aichebao/ # 虚拟环境名称
pythonpath = %(home)/bin/python3.4 # 虚拟环境中的python版本

#socket file's location
socket = %(base)/%n.sock # socket通讯文件

#permissions for the socket file
chmod-socket = 666  

#the variable that holds a flask application inside the module imported at line #6
callable = app # 启动项

#location of log files
logto = %(base)/logs/%n.log  # 日志文件

这样我们的uWSGI也就配置完成了。现在就可以尝试运行一下了。

项目运行

在命令行中执行下面命令:

(venv) yourdebian@dfas:~$ uwsgi --ini project_uwsgi.ini

然后启动你的nginx:

(venv) yourdebian@dfas:~$sudo nginx

最后直接访问localhost,出现HelloWorld字符串即为成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值