Python Flask框架搭建虚拟环境详解

虚拟环境

为什么要搭建虚拟环境?

  • 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装
    • 比如联网安装Flask框架flask-0.10.1版本
sudo pip install flask==0.10.1
  • 提示:使用如上命令, 会将flask-0.10.1安装到/usr/local/lib/python2.7/dist-packages路径下
  • 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
  • 解决方案 : 虚拟环境
    • 作用 : 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
    • 所有的虚拟环境都位于/home/下的隐藏目录.virtualenvs

如何搭建虚拟环境?

  • 安装虚拟环境的命令 :
sudo pip install virtualenv
sudo pip install virtualenvwrapper

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:

# 1、创建目录用来存放虚拟环境
mkdir 
$HOME/.virtualenvs

# 2、打开~/.bashrc文件,并添加如下:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

# 3、运行
source ~/.bashrc
  • 创建虚拟环境的命令 :

    • 提示:如果不指定python版本,默认安装的是python2的虚拟环境
    • 在python2中,创建虚拟环境

      mkvirtualenv 虚拟环境名称
      例 :
      mkvirtualenv py_flask
      
    • 在python3中,创建虚拟环境

      mkvirtualenv -p python3 虚拟环境名称
      例 :
      mkvirtualenv -p python3 py3_flask
      

  • 提示 :

    • 创建虚拟环境需要联网
    • 创建成功后, 会自动工作在这个虚拟环境上
    • 工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”

如何使用虚拟环境?

  • 查看虚拟环境的命令 :
workon 两次tab键

  • 使用虚拟环境的命令 :
workon 虚拟环境名称

例 :使用python2的虚拟环境
workon py_flask

例 :使用python3的虚拟环境
workon py3_flask

  • 退出虚拟环境的命令 :
deactivate

  • 删除虚拟环境的命令 :
rmvirtualenv 虚拟环境名称

例 :删除虚拟环境py3_flask

先退出:deactivate
再删除:rmvirtualenv py3_flask

如何在虚拟环境中安装工具包?

  • 提示 : 工具包安装的位置 :

    • python2版本下:
      • ~/.virtualenvs/py_flask/lib/python2.7/site-packages/
    • python3版本下:
      • ~/.virtualenvs/py3_flask/lib/python3.5/site-packages
  • python3版本下安装flask-0.10.1的包 :

pip install 包名称

例 : 安装flask-0.10.1的包
pip install flask==0.10.1

  • 查看虚拟环境中安装的包 :
pip freeze

HelloWorld程序

创建 Python 项目

  • 打开 Pycharm,创建 Pure Python 类型的项目,创建项目完成之后选择之前创建的 py3_flask 作为虚拟环境

第 4 步路径可以通过在指定虚拟环境下,输入 which python 获得

示例:

  • 新建文件helloworld.py
  • 导入Flask类
from flask import Flask

Flask函数接收一个参数__name__,它会指向程序所在的包

app = Flask(__name__)
  • 装饰器的作用是将路由映射到视图函数 index
@app.route('/')
def index():
    return 'Hello World'
  • Flask应用程序实例的 run 方法 启动 WEB 服务器
if __name__ == '__main__':
    app.run()
  • 在程序运行过程中,程序实例中会使用 url_map 将装饰器路由和视图的对应关系保存起来,打印结果如下图:

猜你喜欢

转载自blog.csdn.net/weixin_42008209/article/details/80368330