虚拟环境 venv的使用--(venv 一)

一、引言

最近在学习《Flask Web Development 2nd Edition》的时候,作者开篇就介绍如何使用 venv 来管理 Python 环境 。
自我觉得作者讲的非常好,想要将其总结下来,方便自己日后查询,也方便各位学习 Python 的同学一起学习。

众所周知,项目的环境管理一直是比较头疼的问题,如果有两个项目,一个用的是 a 库的 v1 版本,一个用的是 a 库的 v2 版本,那么如果 a 库是安装在系统环境下的,就会出现项目所依赖的库文件版本不对的问题。

Python 社区为了解决这个问题,提出了虚拟环境的概念。也就是人为的创建一个虚拟环境供项目运行,而该项目需要什么库文件,则自行在这个虚拟环境中下载安装,而在虚拟环境中下载安装的库文件,是不会影响到系统环境中的库文件的。
有了虚拟环境的概念, Python 的项目管理也就不那么麻烦了。

接下来,我来总结下如何使用 Python 的虚拟环境。

ps: 以下的讲解都是在 Python3 的前提之下。

二、venv

鉴于 Python3 中以标准库的形式包含了 venv 工具,因此就不再讲解 venv 工具的安装了。

不过 Ubuntu 环境是需要自行下载安装的,运行命令如下:

$ sudo apt-get install python3-venv

1. 创建虚拟环境
这里,假定你已经拥有了 venv 工具,我们直接打开命令行工具

Windows 平台下运行:

py -3 -m venv venv 或 python -m venv venv

MacOS 或者 Linux 平台下运行:

python3 -m venv venv

运行完这行命令,应该可以在当前目录下看到新建的一个文件夹,名为 venv,其就是虚拟环境的名称,并且以后我们在虚拟环境中所有的操作以及下载的库文件,都会在这个文件夹中。
在这里插入图片描述
2. 激活虚拟环境
创建了虚拟环境却没有激活的话,你还是处于系统环境中。怎么激活虚拟环境呢?

Windows 平台下运行:

venv\Scripts\activate 或 cd venv\Scripts | activate

MacOS 或者 Linux 平台下运行:

source venv/bin/activate

这里 venv 是你的虚拟环境的名字。运行完之后,自动会刷新命令行界面,以括号内嵌虚拟环境名字的形式提示用户,现在是处于 venv 虚拟环境中。
在这里插入图片描述
3. 使用虚拟环境
虚拟环境除了 Python 一些核心的包、pip 工具等等,其他都没有,因此,当前项目需要什么,则使用 pip 工具下载即可。

其他的使用方法,与系统环境下的使用没有什么不同。

4. 退出虚拟环境
退出虚拟环境很简单,各平台都是一样的:

deactivate

从虚拟环境中退出到系统环境是很明显的,因为前面的虚拟环境名称提示符消失了。
在这里插入图片描述

三、在 PyCharm 中配置当前项目虚拟环境

venv 是很好用,但是我们该如何在 PyCharm 中配置当前项目所使用的环境呢?
1. 进入 Project Interpreter 界面
我们打开 PyCharm,菜单栏选择 File,点击 Settings,进入到设置界面,然后配置 Project Interpreter
在这里插入图片描述
2. 添加虚拟环境
在 Project Interpreter 文本框右侧点击齿轮按钮,点击 Add。
在这里插入图片描述
然后,选择 Virtualenv Environment 标签卡,选择 Existing enviroment(选择上面那个应该可以直接新建一个环境,这里为了续接上一节中的环境,则直接选择了已存在的环境),这里,如果 PyCharm 没有找到你新建的环境,则需要你自己去打开文件找到你虚拟环境中的 Scripts 目录下的 python.exe 解释器文件。
3. 测试运行
最后点击 OK,即可看到环境列表多了一行。这里,我们可以在项目中切换各个环境进行自己当前项目的测试,还是很方便的。

四、总结

不得不说,venv 还是给了我不少的惊喜。也就像《Flask Web Development 2nd Edition》的作者所说的:

在系统环境中,使用最基本的 Python 解释器提供虚拟环境 venv
的功能,然后在各个虚拟环境中完成我们的项目,这样是比较好的项目组织方式

上述话语是意译,我也比较认可作者的这一个看法,这样能让我们的系统环境非常的干净,却又能够非常好的管理各个项目。

不过同样的话,《Head First Python 2nd Edition》的作者也说过:

We recommend you slowly back away from people who say that you aren’t
a proper Python programmer unless you use virtualenv.

总之,使用虚拟环境肯定能够带来好处,但是盲目推崇也是不好的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值