《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情




第十三章:虚拟环境

阅读:207569496    分享到

Python 的虚拟环境可以使一个 Python 程序拥有独立的库和解释器,而不用与其它 Python 程序共享用一个库。虚拟环境的好处是避免了不同 Python 程序间的互相影响,如果我们不使用虚拟环境,我们在开发项目A时可能需要某个库的 1.0 版本,而我们又需要开发项目 B,而项目 B 需要同样这个库的 2.0 版本,如果程序 B 执行则 A 就不能执行了。

virtualenv 是可以创建和管理虚拟环境的第三方模块,我们可以用该 virtualenv 创建虚拟且独立的 python 运行环境,使得单个项目的运行环境与其它项目独立起来。

安装和使用 virtualenv

首先我们用 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 版本。


如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论

user_image
Dustin
2020年11月9日 07:45 回复

你好,可以问一下虚拟环境有什么好处吗?


user_image
看5212
2020年2月22日 18:59 回复

virtualenv和pipenv 哪个好用啊


user_image
Anonymous
2019年10月26日 13:37 回复

我想问下作者是不是每一个虚拟环境相当于虚拟出来的解释器呢,是在项目的文件下去创建虚拟环境吗,还是虚拟环境下创建项目


user_image
林晓枭
2019年9月22日 21:25 回复

CentOS中使用 pipenv时,安装的虚拟环境的路径是怎样的?


user_image
范德林德第一劳模
2019年8月17日 20:48 回复

请问有下载链接virtualenv


user_image
老鸟python
2020年10月17日 15:09

一般直接用pip install 安装就好了


user_image
岳大禹
2019年3月14日 13:22 回复

牛皮 学习收藏了