什么是虚拟环境

我们在使用Python的时候,通常用pip来进行包管理。比如我们要安装一个叫requests的库,那么我们就会采用以下命令去安装:

pip install requests

那你知道,这个requests被安装到哪里去了吗?

其实,这个requests库被安装到 Python安装目录/Lib/site-packages下面。要知道,site-packages是一个全局包路径

啥意思呢?就是说,我安装的requests这个库对这台电脑这个版本的Python都生效。

那这样会造成一个问题:

如果requests在1.0版本和1.1版本发生了较大变化,比如:

1.0版本的时候有个方法叫requests.get,到了1.1版本,这个包改名叫requests.got, 然后还支持了不少新特性

如果我有一个很老的项目,一直用的是1.0的版本,而我现在写了一个新项目,又想用到1.1版本的最新特性。

那我如果只有一个版本的requests,我就没法兼容新项目旧项目了。

所以我们有了虚拟环境的概念,其实也可以说是隔离环境。说简单点就是,这个python的库管理跟随你的项目走,你项目里就算用到100个库,也不会给你装到全局去,这样就隔离了全局的库。

安装virtualenv

而达到这样的目的,都是基于一款python的库: virtualenv。(它支持python2和3)

pip3 install virtualenv

tips: 有的python库,他不一定是给python代码调用的,你可以把它想象成一个可执行程序,比如我们常用的gunicorn,虽然是通过pip安装,但是安装好了之后它是一个可执行程序

创建虚拟环境

安装好virtualenv以后,我们就可以来开辟一个虚拟环境,用于隔离全局的库了。

virtualenv venv

在我们的项目根目录下执行这个命令,可以看到一些提示:

启用虚拟环境

我们根目录下会多一个venv的文件夹,里面有点东西。

别急,我们还得先激活这个虚拟环境

  • Mac/Linux
source venv/bin/activate
  • Windows
venv\Scripts\activate

其实可以看到,venv的Scripts里面有个activate.bat(激活虚拟环境脚本),而Unix系统下自带source,所以有些区别。

接着你就可以在虚拟环境畅游了,你所有安装/卸载的包都会在venv目录下被安排的服服帖帖的,不会被影响也不会影响到全局的库。

退出虚拟环境

source venv/bin/deactivate
  • Windows
venv\Scripts\deactivate

用deactivate就好了,这样你的包管理又回到了全局,venv标识也消失不见了。

其实这个很像node_modules,node_modules在项目的根目录生成,并通过package.json进行包的版本管理,不影响全局模式,非常好用。

简单的说就是各玩各的,互不干扰

标题从3分钟->5分钟,最后改为几分钟,你读完了么?反正我是读完了!

几分钟就能学会的Python虚拟环境教程的更多相关文章

  1. python虚拟环境配置(下)

    前言 嘿,各位小伙伴们,晚上好呀,新年快乐,注意预防流感哈,就不要出去浪了,万一中奖了,嗯...,还是当个宅男,宅男无敌,哈哈哈, 过年了,村都被封了,哎,出都出不去,想着干点啥,就把以前没完善的继续 ...

  2. (zhuan)Python 虚拟环境:Virtualenv

    Python 虚拟环境:Virtualenv zhuanzi: http://liuzhijun.iteye.com/blog/1872241 virtualenv virtualenv用于创建独立的 ...

  3. CentOS使用virtualenv搭建独立的Python环境-python虚拟环境

    CentOS使用virtualenv搭建独立的Python环境-python虚拟环境 virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解 ...

  4. Python 虚拟环境Virtualenv

    本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境  和 本地环境没有关系,随时可以删除这个隔离 ...

  5. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  6. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

  7. python虚拟环境Virtualenvwrapper无法升降级虚拟环境软件解决方法

    virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够在没有权限的情况下安装新套件,不同应用可以使用不同的套件版本,套件升级不影响其他应用. Virtaulen ...

  8. Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字

    想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...

  9. python虚拟环境的使用

    一. 安装 sudo apt-get install python-virtualenv 二. 创建环境 sudo virtualenv Myenv 创建完全隔离的Python环境,实质是创建了一个文 ...

随机推荐

  1. SQL server多表联合查询

    参考网址: https://blog.csdn.net/zou15093087438/article/details/79226394 1. 外连接可分为:左连接.右连接.完全外连接. a.  左连接 ...

  2. android Handler消息通信

    1 package com.example.testhandler; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 impo ...

  3. vue 优化hash持久化缓存

    公司用的是vue最近在学习react的打包时发现react会额外生成一个runtimeChunk,不知道具体原因所以查资料学习了下, 这里是runtime的功能,文章地址:https://sebast ...

  4. 《网页布局基础篇》HTML+CSS单列布局--水平居中,垂直居中,水平垂直居中

    https://blog.csdn.net/panlu666_pl/article/details/66480433 一.水平居中 子元素在父元素中水平居中 1.使用 text-align和inlin ...

  5. java对象的引用级别

    解释 在java中也有引用的概念,其实就可以认为是变量.标题中的引用级别是指变量与对象之前的引用级别.java中分为4种,按引用强弱关系排序分别是:强引用.软引用.弱引用.虚引用. 强引用(Stron ...

  6. 5M1E,软件质量管理最佳解决方案

    - 如何做好一个产品? - 用户.需求.文化.价值.设计.流程,这些因素缺一不可.- 那么,如何做好产品的质量管理?- 人.机器.物料.方法.环境.测量,这些因素同样缺一不可.能够影响产品质量波动的因 ...

  7. linux centos7 df命令

    2021-08-04 1. df 命令简介 linux 中 df 命令的功能是用来检查 linux 服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信 ...

  8. 174道 JavaScript 面试题,助你查漏补缺

    最近在整理 JavaScript 的时候发现遇到了很多面试中常见的面试题,本部分主要是作者在 Github 等各大论坛收录的 JavaScript 相关知识和一些相关面试题时所做的笔记,分享这份总结给 ...

  9. mybatis动态sql以及分页

    1.mybatis动态sql 2.模糊查询 3.查询返回结果集的处理 4.分页查询 5.特殊字符处理 1.mybatis动态sql If.trim.foreach If 标签判断某一字段是否为空 &l ...

  10. epoll代码框架

    epoll代码实现框架: #define MAX_EVENTS 10 struct epoll_event ev, events[MAX_EVENTS]; int listen_sock, conn_ ...