Python 的虚拟环境可以使一个 Python 程序拥有独立的库和解释器,而不用与其它 Python 程序共享用一个库。虚拟环境的好处是避免了不同 Python 程序间的互相影响,如果我们不使用虚拟环境,我们在开发项目A时可能需要某个库的 1.0 版本,而我们又需要开发项目 B,而项目 B 需要同样这个库的 2.0 版本,如果程序 B 执行则 A 就不能执行了。
virtualenv 是可以创建和管理虚拟环境的第三方模块,我们可以用该 virtualenv 创建虚拟且独立的 python 运行环境,使得单个项目的运行环境与其它项目独立起来。
首先我们用 pip 来安装 virtualenv,为了防止国外网速慢或下载失败,我们使用使用国内镜像。
pip install -i https://mirrors.aliyun.com/pypi/simple virtualenv # 使用阿里云镜像安装
我们知道第三方模块一般被安装在 Python 解释器所在的根目录下的 Lib 目录下的 site-packages 目录下,virtualenv 模块同样被安装在该目录下。同时 virtualenv 也提供一个 exe 程序方便我们直接使用,我们以后直接使用该 exe 程序来创建虚拟环境,这个 exe 文件放在 Python 解释器所在的根目录下的 Scripts 目录下。
首先我们进入本地 Python 解释器所在的根目录下的 scripts 目录下,
然后使用命令 virtualenv.exe myenv
来创建虚拟环境,myenv
是新创建的虚拟环境的名称,该虚拟环境是一个文件夹, 里面是了一个独立的
Python 执行环境。
virtualenv.exe myenv # 创建虚拟环境
该虚拟环境被创建在你控制台执行命令时所在的当前路径下,
因为我们是进入本地 Python 解释器所在的根目录下的 scripts 目录下执行的创建命令,所以虚拟环境 myenv
被创建在该目录(C:\Python3\Scripts
)下。
当然我们也可以把虚拟环境创建在其它任何目录下。
有时候为了打包方便,我们会把虚拟环境创建在项目根目录下,比如我们想把虚拟环境创建在
E:\python_test
项目路径下,此时我们只需要在控制台下进入项目目录下调用
virtualenv 来创建虚拟环境即可,注意要写上:virtualenv.exe 所在的全路径。
下面为了方便学习,我们就以上面创建在 C:\Python3\Scripts
路径下的虚拟环境为例。虚拟环境创建好之后,我们就可以在我们的虚拟环境下安装我们的项目需要的第三方模块,在安装第三方模块之前我们要先进入虚拟环境目录,并激活虚拟环境。
激活虚拟环境的命令为:activate
,当虚拟环境激活成功,当前路径前面会多出一个虚拟环境的名称。
激活虚拟环境后,我们可以使用 pip 把第三方模块安装到虚拟环境下,下面我们准备把 Pillow 模块安装到虚拟环境下。
我们可以用 deactivate 命令退出我们激活的虚拟环境。
当然,我们开发项目使用的是 Pycharm,比如我们让项目 python_test 使用虚拟环境 myenv,只需要在 Pycharm 下给要开发的项目配置虚拟环境 myenv 下的 Python 解释器即可。
把项目和虚拟环境关联好后,直接运行,我们发现项目调用的是虚拟环境下的解释器。
如果我们想永久废弃虚拟环境 myenv,直接删掉 myenv 文件夹就可以了。
大家一定要熟悉 Python 解释器路径的查找规则,查找规则为:当前路径下 Python
解释器 > 虚拟环境所在路径下 Python解释器 > 环境变量路径下 Python
解释器。比如在控制台下激活虚拟环境后,把当前路径切换到 E 盘,然后进入 python
解释器环境,使用代码 print sys.executable
打印出当前使用的 python 解释器路径。
大家可以做一个试验,把 python.exe 程序拷贝到 E 盘,激活虚拟环境后,把当前路径切换到 E 盘,进入 python 解释器环境,然后打印出当前 python 解释器使用的路径,看看调用的是哪个 Python 解释器。
最后说一句,大家做项目开发中要养成一个好习惯:对每一个项目都关联独立的虚拟环境。
会使用虚拟环境的各种操作命令。
项目开发中会使用虚拟环境。
创建两个虚拟环境(myenvone 和 myenvtwo)和两个项目(python_one 和 python_two),让项目 python_one 使用虚拟环境 myenvone,项目 python_two 使用虚拟环境 myenvtwo。虚拟环境 myenvone 中安装 Pillow 最新版本模块,虚拟环境 myenvtwo 中安装 Pillow-6.0.0 版本。
virtualenv和pipenv 哪个好用啊
我想问下作者是不是每一个虚拟环境相当于虚拟出来的解释器呢,是在项目的文件下去创建虚拟环境吗,还是虚拟环境下创建项目
CentOS中使用 pipenv时,安装的虚拟环境的路径是怎样的?
请问有下载链接virtualenv
一般直接用pip install 安装就好了
牛皮 学习收藏了
你好,可以问一下虚拟环境有什么好处吗?