这篇文章开始来写一个Django的系列,从基本的环境配置开始,争取能坚持写完Django的MVT三大模块,最后能配一个项目

 

一、什么是虚拟环境,为什么要使用虚拟环境?

虚拟环境,英文单词virtual environment,顾名思义,就是一个虚拟的环境(好像跟没说一样...)。存在的意义就是将本地的python打包到一个文件夹中,这个文件夹就是我们的虚拟环境,我们可以在这个虚拟环境下进行正常的python开发工作。

那为什么要用到这个虚拟环境呢?原因是为了解决开发过程中版本不兼容的问题,技术的更新迭代非常的快,而且在项目的开发过程中可能需要更新模块,而python中更新新的模块会将旧模块覆盖掉,这就会导致已有项目的运行可能会出问题。这个时候虚拟环境的价值就体现出来了,每个虚拟环境都可以作为一个完全真实独立的开发环境,彼此之间互不干扰

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境

二、安装虚拟环境及扩展包

安装虚拟环境

pip install virtualenv

打开本地dos命令面板,输入上面的命令,回车执行

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_virtualenv_02

安装虚拟环境扩展包

pip install virtualenvwrapper

如果你是在Windows下安装虚拟环境的话,请执行下面的扩展包安装命令

pip install virtualenvwrapper-win

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_03

安装完成之后需要配置下系统环境,启用虚拟环境扩展包

Ubuntu

在当前登录用户的家目录下面的.bashrc文件,添加下面两行命令

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

使用source .bashrc命令使配置生效

Windows

设置workon_home环境变量,在系统变量中添加新的内容WORKON_HOME,指向本机虚拟环境的统一管理目录

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_04

三、创建虚拟环境

建议虚拟环境统一建在一个文件夹中便于管理,我自己的虚拟环境管理目录是

Windows下:F盘下的VirEnvs

Ubuntu下:家目录的VirEnvs

执行命令:

这里创建虚拟环境其实有两条命令:

mkvirtualenv:这条命令创建虚拟环境直接创建在默认路径下,且创建成功虚拟环境直接打开

virtualenv:指定虚拟环境的创建目录,创建成功之后需要手动打开

virtualenv 虚拟环境名

Windows: 

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_扩展包_05

Ubuntu:

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_06

mkvirtualenv 虚拟环境名

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_07

如果你本机有多个版本的python,你想要创建指定python版本解释器的虚拟环境的话,请使用下面的命令

mkvirtualenv -p 需要安装的python解释器路径 虚拟环境

 

 四、查看、启动、关闭虚拟环境

查看

直接使用workon命令,这也是我们安装虚拟环境扩展包的意义所在

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_virtualenv_08

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_virtualenv_09

启动

有两种方式:

我们先说最简单的,通过workon启动

workon 虚拟环境名

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_10

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_11

其次我们可以切换到虚拟环境下Scripts目录下,执行activate.bat命令

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_virtualenv_12

退出

直接执行deactivate命令

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_13

 

python venv为什么不能创建不同版本python虚拟环境 python为什么要创建虚拟环境_虚拟环境_14