虚拟环境 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
1. 创建虚拟环境
这里,假定你已经拥有了 venv 工具,我们直接打开命令行工具
Windows 平台下运行:

py -3 -m venv venv 或 python -m venv venv
1
MacOS 或者 Linux 平台下运行:

python3 -m venv venv
1
运行完这行命令,应该可以在当前目录下看到新建的一个文件夹,名为 venv,其就是虚拟环境的名称,并且以后我们在虚拟环境中所有的操作以及下载的库文件,都会在这个文件夹中。

2. 激活虚拟环境
创建了虚拟环境却没有激活的话,你还是处于系统环境中。怎么激活虚拟环境呢?
Windows 平台下运行:

venv\Scripts\activate 或 cd venv\Scripts | activate
1
MacOS 或者 Linux 平台下运行:

source venv/bin/activate
1
这里 venv 是你的虚拟环境的名字。运行完之后,自动会刷新命令行界面,以括号内嵌虚拟环境名字的形式提示用户,现在是处于 venv 虚拟环境中。

3. 使用虚拟环境
虚拟环境除了 Python 一些核心的包、pip 工具等等,其他都没有,因此,当前项目需要什么,则使用 pip 工具下载即可。
其他的使用方法,与系统环境下的使用没有什么不同。
4. 退出虚拟环境
退出虚拟环境很简单,各平台都是一样的:

deactivate
1
从虚拟环境中退出到系统环境是很明显的,因为前面的虚拟环境名称提示符消失了。

三、在 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》的作者也说过:
虚拟环境 venv的使用--(venv 一)的更多相关文章
- pycharm如何关闭虚拟环境(即取消venv命令行)
venv命令行 是虚拟环境特有, 为什么要使用虚拟环境: 在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy.Beautiful Soup等,但是可能每个项目使用的框架库 ...
- Python3 venv 创建虚拟环境
简介 Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv. 该venv模块提供了创建轻量级"虚拟环境",提供与系统Pyth ...
- Python3的venv虚拟环境操作(Linux)
Infi-chu: http://www.cnblogs.com/Infi-chu/ Python3.3以上版本支持了原生的虚拟环境命令,即venv. 长话短说,具体的理论在这里就不多说了,主要的操作 ...
- python 虚拟环境 venv 简单用法
Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv.该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持.每一个虚拟环 ...
- 虚拟环境及venv和virtualenv
一.虚拟环境概述 Python应用程序通常会使用不在标准库内的软件包和模块.应用程序有时需要特定版本的库,修复特定的错误,或者可以使用库的过时版本的接口编写应用程序. 这说明一个Python安装可能无 ...
- python虚拟环境和venv的使用
目录 1.环境与虚拟环境 2.查看帮助 3.--system-site-package 命令 4.创建虚拟环境 5.激活/关闭虚拟环境 6.保存和复制虚拟环境 7.改变虚拟环境所指向的真实python ...
- python 3.6 的 venv 模块
今天,在在使用 pycharm 的使用,进行创建 python的时候,发现使用默认的创建的选项使用的python 3环境 .而我系统默认的python环境是 python 2.7 环境:这就引起了我的 ...
- python多环境管理一(venv与virtualenv)
一.背景 我们经常会遇见这样的场景: 1.各个项目使用的python版本不相同 由于Python的解释器版本众多,各版本之间差异非常大.特别是python2和python3,互不兼容. 有些项目可能用 ...
- python 虚拟环境
python3 目录venv创建为虚拟环境,并激活. $ python3 -m venv ./venv$ source venv/bin/activate -m: -m mod : run libra ...
- Python 中的虚拟环境
检查系统是否安装了virtualenv: $ virtualenv --version 创建虚拟环境venv(名字可以随便取,一般为venv): $ virtualenv venv 使用虚拟环境ven ...
随机推荐
- MySQL 常用命令(2)------数据库操作
四.数据库操作 1.创建数据库 注意:创建数据库前要先连接mysql数据库 语法:create database <数据库名> 例:创建数据库并分配用户 1.create database ...
- 【Java】时间类型
Date 转 timeStamp long time = System.currentTimeMillis(); // 秒级 long time = System.currentTimeMillis( ...
- 全文检索引擎:solr lucene
solr在lucene外边做了一层厚厚的封装,主要是为了简化二次开发,提供了一些成熟的解决方案. Lucene是全文检索是对索引中Document的各field进行匹配,可返回document,得到查 ...
- ESP8266-01S 烧录AT固件
首先就是下载官网的下载软件和AT固件 这是下载好了的 然后就是硬件电路了 我是想把ESP8266用于Ardiuno板子的,然后网上有说买的USBTOTTL的3v3供电不够,所以我就用的Ardiuno板 ...
- docker部署服务器
Docker部署PostGres docker run -d --name postgres --restart always -e POSTGRES_USER='postgres' -e POSTG ...
- 20211306 《Python程序设计》实验三报告
学号 20211306 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 2113 姓名: 丁文博 学号:20211306 实验教师:王志强 实验日期 ...
- 高性能的StampedLock锁
StampedLock 支持的三种锁模式: 1.ReadWriteLock 支持两种模式:一种是读锁,一种是写锁 2.StampedLock 支持三种模式,分别是:写锁.悲观读锁和乐观读 1)写锁.悲 ...
- nginx 添加ssl认证,访问静态资源 笔记
1.查看是否开启SSL模块, /usr/local/nginx/sbin ./nginx -V 2.没有开启,进入到nginx源码包目录下: 3编译 ./configure --prefix= ...
- 【python】绘图,画虚线
linestyle='--' plot画线时候加linestyle='--'. 参考:python 画图-标注点,画虚线_GXLiu-CSDN博客_python画虚线
- Element-ui框架Tree树形控件切换高亮显示选中效果
废话不多说,直接上代码 1 <template> 2 <div class="warpper"> 3 <el-tree ref=& ...