第1问:什么是虚拟环境
所谓虚拟环境,就是我们创建项目时,不使用操作系统中安装的Python,而是在项目所在目录下创建一个目录,通常叫venv,然后把系统中安装的Python以及项目依赖包都拷贝到这个venv目录中,本项目以后就使用这个venv。
virtualenv,虚拟环境必备工具
目前我们用得最多的虚拟环境创建工具叫virtualenv:
Python虚拟环境实现示意图
第2问:为什么要使用虚拟环境
一句话:为了更科学合理地管理项目依赖。举个例子:
你在公司同时开发两个项目,一个是你新开的项目,叫new_project,一个是你入职之前已经存在很多年的项目,叫old_project,new_project现在开发,肯定是使用新包新特性,所以你使用了django3.0,而old_project是五年前的人创建开发的,使用的是django1.0,而django这个包这么些年,从1.0发展到3.0,功能变动较大,你的old_project不能直接把所依赖的django1.0升级到3.0,它必须一直始终1.0。
问题来了:
你写old_project的代码时,你需要把已经安装的django3.0卸载了安装1.0你写new_project的代码时,你需要把已经安装的django1.0卸载了安装3.0你的Windows系统挂了,重装系统,或者换了台电脑,恢复开发环境的时候,你得先去old_project中装一遍,再去new_project中装一遍,如果你有几十几百个项目,你就挨个去看一遍这听上去是多么的不靠谱!
项目多年头长了系统环境变了,我崩溃了
假如你在项目目录中创建了一个venv目录,把它的依赖都放在了这里,那就简单了,无论系统环境怎么变,你的加载项都在这个venv目录中,其他的项目删除或者更新了django的版本,和你没什么关系。
总结起来就是一句话:每个项目都有自己独立的环境依赖,外部环境变化不会对其造成影响。
第3问:虚拟环境怎么使用
首先是全局安装virtualenv这个包,安装很简单,随便打开一个cmd或者powershell窗口,然后运行pip install virtualenv就可以了。
安装成功之后,需要在cmd中验证一下,运行virtualenv --version即可。
之后,就是进入你的项目目录,运行virtualenv venv命令即可。venv就是虚拟环境的目录,是可以改的,但是我们一般都使用venv。
通过PyCharm创建的项目会自动使用virtualenv维护一个虚拟环境,所以就省了很多事了。
如果在PyCharm中虚拟环境配置是正确的,当你打开一个终端,也就是terminal的时候,会是这样的:
带有虚拟环境的终端操作操作窗口
写在最后
无论我们是开发大型项目,还是写一个小型程序,都要遵循这套规范,一来它本身并不复杂,二来它确实可以避免很多依赖管理的坑。所以,大家一定要用起来啊。
virtualenv首页
学习和精通一门语言,尤其是能够在工程化的环境中把它用起来,需要大家坚持不懈的付出努力。
网上的资料的优点是导向性强,直达目标,缺点是资料碎片化。书本的优势是知识成体系,学完了有科班的感觉,能助你练好“内功”,缺点是资料庞大,学习成本高。大家要根据自己的需要做一个选择哦。