虚拟环境 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 ...
随机推荐
- 找着CA证书位置
php -r "print_r(openssl_get_cert_locations());"
- element 表格show-overflow-tooltip的属性设置样式
在style标签中不要加scoped .el-tooltip__popper { max-width: 60% !important; } .el-tooltip__popper, .el-toolt ...
- SQL----EXISTS 关键字EXISTS基本意思
1.EXISTS基本意思 英语解释就是存在,不过他的意思也差不多,相当于存在量词'З'.他不返回数据的,当后带带的查询为空值是,返回"FALSE",非空则返回"TRUE& ...
- CSS中z-index的属性与使用
z-index 属性指定一个元素的堆叠顺序. 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. Z-index 仅能在定位元素上奏效,z-index 进行定位元素(position:abso ...
- noi 1.1 3 对齐输出
描述 输入三个整数,按每个整数占8个字符的宽度,右对齐输出它们. 输入 只有一行,包含三个整数,整数之间以一个空格分开. 输出 只有一行,按照格式要求依次输出三个整数,之间以一个空格分开. 样例输入 ...
- prophet安装(ubuntu16 python3.6)
ubuntu16 python3.6 (ubuntu16自带的python3是3.5 升级至3.6可参考https://blog.csdn.net/weixin_42544006/article/de ...
- Java中的super和this关键字——
super与this关键字 先总结再解释: super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类. this关键字:指向自己的引用. super注意点: 1.s ...
- Windows+svn +Jenkins+发布NetCore/VUE项目
1. NetCore环境下载,注意是下载SDK,不是Runtime:https://dotnet.microsoft.com/download/dotnet-core?utm_source=getdo ...
- 二叉树系列之二叉搜索树BST
特征: 1.每个元素有唯一键值 2.任意一个结点键值,比它左子树的所有结点的键值大,比它右子树的所有结点的键值小 数据的基本操作: 1>建树和插入.逐个插入其他所有数据.新插入的数据于一个最底层 ...
- Django框架搭建web项目(二)
1.在路径XXXXX\mydjango\mydjango\mydjango下新建views.py(在浏览器中url请求后所展示的内容设置) from django.http import HttpRe ...