边做边学Python Flask Web开发(2)-- 使用VirtualEnv虚拟环境 - Go语言中文社区

边做边学Python Flask Web开发(2)-- 使用VirtualEnv虚拟环境


使用VirtualEnv虚拟环境

概述

说VirtualEnv是Python的一大神器不足为过,如果你在生活中也有那么一点点的“洁癖”,相信你会喜欢上这个东西。

我们知道使用Python的过程中会安装各种库、包,甚至有时候还需要Python2和Python3两种环境混合使用,慢慢的你的Python运行环境会越来越臃肿,这倒还是其次,最可怕的是,有些应用会使用到某个Python包的特定版本,我们知道同一个Python运行环境里面是不能存在同一个包的不同版本的。所有这些都是你为什么要使用VirtualEnv的理由。

VirtualEnv给你一个干净的Python运行环境,并给你不同的应用使用不同版本的包文件提供了可能,甚至使用它可以让Python2和Python3和谐地共存。对于我来说,我用它的原因主要有以下几点:

  • 我需要一个干净的Python环境,这个环境只针对我目前开发的应用;
  • 我不希望多安装一个和项目无关的包,也不希望出现和其它应用有包版本冲突的问题;
  • 我还需要生成一个requirements.txt用来告诉其他人我项目的依赖;
  • 我不希望使用pyinstaller打包发布的过程中,给我加进来一堆没有用处的文件。

开始使用

通常我们这样使用VirtualEnv:找到你的应用代码根目录,输入virtualenv venv,这样就在代码根目录下生成了一个venv目录,这里面包含了一个干净的Python环境。

激活venv环境

生成venv目录后,我们使用下面的命令激活virutalenv。

Windows

D:dev>venvScriptsactivate

Linux

$ source /home/user/dev/venv/bin/activate

使用source命令能够避免activate没有执行权限的问题,如果有执行权限可以去掉source。

生成requirements.txt

在venv提示符下,输入以下命令即可生成支持库清单文件:

(venv)D:dev>pip freeze > requirements.txt

如果需要还原requirements.txt所描述的Python环境,只需要在(另一个)venv提示符下,输入以下命令:

(venv)D:dev>pip install -r requirements.txt

在PyCharm中使用虚拟环境

PyCharm可能是现今最流行的Python集成化开发环境了,PyCharm功能强大,可以让你的Python开发事半功倍,更重要的是它免费的Community版本其实已经足够好用了,虽然官方文档中指出Community版本不支持Web开发,但实际应用中我们发现它能很好的对Flask应用进行调试,而且Community版本还支持SVN等团队协同方案,真是赚到了。

PyCharm支持VirtualEnv这一重要特性,它通常会在代码根目录寻找venv目录,尝试把它作为Python的虚拟运行环境,但一些情况下PyCharm对虚拟环境的定位可能会失败,这时候需要手动设置虚拟环境,步骤如下。

第一步:打开工程,选择File->Settings。

这里写图片描述

第二步:选择Prject:xxx下面的Project Interpreter。

这里写图片描述

第三步:点击右侧的齿轮图标,选择Add Local。

这里写图片描述

第四步:定位到venv目录中的python.exe。

这里写图片描述

最后确认这些操作,设置完成。

PyCharm还会检索根目录中的requirements.txt,并对其中标示的包进行检查,如果在当前的Python环境中没有找到这些包会产生警告,可以根据实际情况安装这些包或者忽略警告。

Flask开发中的应用

我们知道Flask是一个微型框架,它就像胶水,把你需要的各种组件粘合起来,因此Flask开发过程中,哪怕是一个小小的应用都需要我们安装数量不小的扩展包。而Flask的开发环境通常和生产环境是分开的,也就是我们总有一天要涉及到把开发完成的Flask应用迁移到生产环境中去,这就涉及到到如何快速迁移部署的问题。于是,你应当很自然的想到,使用virutualenv对Flask应用进行包管理再好不过了。

在虚拟环境中安装Flask

Flask依赖两个核心组件,werkzeug和jinja2,其中一个是作为其基础的wsgi,另一个是其默认的模板引擎。如果你用pip安装flask,那么它会自动为你安装好这两个必备组件。
运行下面的命令在虚拟环境中安装flask:

(venv)D:dev>pip install flask

安装Flask扩展

使用Flask过程中不可避免地要安装许多Flask扩展库,Flask扩展库的命名方式还是有一定规律的,如果运行Flask程序时出现以下错误提示,通常是没有安装相应的插件:

ImportError: No module named flask.ext.login

我们注意一下模块名称是flask.ext.login,按照flask插件的命名规范,对应的软件包是flask-login。使用pip安装即可。

(venv)D:dev>pip install flask-login

下一节我们将介绍Flask的Helloworld。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/langkew/article/details/51566529
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 16:27:30
  • 阅读 ( 1159 )
  • 分类:Go环境配置

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢