1.背景

在开发python项目的过程中,我们会用到各种各样的包,我们使用pip来管理包,请看下图我们刚装好python解释器时已安装的包:

但是随着我们疯狂的使用pip install xxx后,系统中包的情况可能如下:

这个时候就会出现问题,有可能A项目需要的包,对B项目来说是会产生冲突的,这个时候我们自然而然地会想到为每一个项目独立地创建一个环境,它们之间彼此相互独立,互不影响,这个就是我们要讲的python虚拟环境。如下图所示:

这样每个项目就是一个虚拟环境(文件夹),python解释器会保持干净,不会随着项目的增加而变得杂乱无章。删除对应的项目后,该项目内的包也会被移除,不会遗留垃圾文件。讲了这么多了,接下来看看怎么创建和使用虚拟环境吧。

2.创建虚拟环境

在cmd中依次输入如下命令:

mkdir projectA
cd projectA
python -m venv env

注:因为python3自带创建虚拟环境的包venv,所以我们就不需要像以前一样专门下载一个叫virtualenv的包。

执行完上述代码,你会发现在你的projectA目录下会有一个env目录,这个env目录就是存放适用于我们当前项目的包的位置。你可以给你的虚拟环境起别的名字,我在这个起为env。

接下来让我们激活我们的虚拟环境,

window平台

env\scripts\activate

Linux/macOS

source env/bin/activate

成功激活后你会发现你的命令行前面会有一个(env)的提示,表明你当前正在虚拟环境。如下图所示:

接下来我们就可以放心大胆的适用pip来安装我们想要的包了,让我们来确认一下看包是否安装在了env目录中,看下图,

我们使用下面的命令就可以退出虚拟环境:

deactivate

好了,关于python虚拟环境的简单知识我们讲完了,尽可能地使用虚拟环境来保持我们全局地解释器干净。

使用虚拟环境来管理python的包的更多相关文章

  1. [pip]安装和管理python第三方包

    使用 ”pip install 包名“   直接下载安装第三方包 1.在以下地址下载最新的PIP安装文件:http://pypi.python.org/pypi/pip#downloads2.下载Wi ...

  2. python pipenv 包管理

    原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 翻译者:Jiong 在thought ...

  3. 使用pipenv管理python虚拟环境

    前言 近期的项目中,我开始尝试着从virtualenv管理python虚拟环境,切换到用pipenv来管理. 经过一段时间的使用,着实觉得pipenv使用的更加顺手,更加的便捷.这当然也延续了 Ken ...

  4. 使用conda管理python环境和包

    操作系统:CentOS7使用virtualenv管理python虚拟环境virtualenv是一款轻量级第三方虚拟环境管理工具,不像Anaconda大小达上百M,virtualenv大小只有10M左右 ...

  5. Python的包管理工具Pip (zz )

    Python的包管理工具Pip 接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_ins ...

  6. Python的包管理

    0.Python的包管理 在刚开始学习Python的时候比较头疼各种包的管理,后来搜到一些Python的包管理工具,比如setuptools, easy_install, pip, distribut ...

  7. python pip包管理

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.本文将详细说明 安装 pip 的方法和 使用 pip 的一些基本操作如安装.更新和卸载 python ...

  8. 使用virtualenvwrapper模块管理python虚拟环境

    1.pip安装virtualenvwrapper [root@localhost ~]# pip install virtualenvwrapper # 安装virtualenvwrapper [ro ...

  9. 使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境

    在上一篇博客中,我介绍了如何在ubutnu 18.04中安装pyenv.这一次我将介绍如何使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境. 0.相关命令 首先使用pye ...

随机推荐

  1. HTTP之间的区别和特性

    一. Http 简介 Http,学名超文本传输协议 它理解起来并不复杂,平时并不起眼,但经常使用; 前后端交互,多数依赖于http协议,重要性看个人理解,我不敢使用个人认为不掌握的技术; 二. HTT ...

  2. Luogu P1438无聊的序列【线段树/差分】By cellur925

    题目传送门 题目大意:维护一个序列,维护区间加等差数列,单点查询的操作. 首先我们肯定是要用线段树来维护了,按照一般的思维局限,我选择了维护序列中的值,但是区间修改的时候由于公差的存在,所以区间修改有 ...

  3. scikit-learn使用fetch_mldata无法下载MNIST数据集的问题

    scikit-learn使用fetch_mldata无法下载MNIST数据集的问题 0. 写在前面 参考书 <Python数据科学手册> 工具 python3.5.1,Jupyter La ...

  4. 微信小程序采坑之上拉触底加载更多和下拉刷新

    小程序中加载更多数据一般都是触底刷新 有自带的函数: onReachBottom: function (){} 但是在使用时触发完全没有反应,后来尝试给外层加了一个高度,解决问题 仔细想想也是,没有设 ...

  5. Vuex有哪些作用

    1.Vuex实现路由数据通讯 点击跳转路由的时候,把写入vuex,跳转后取出vuex

  6. 界面切换动画(CATransition实现 )

    调用 // CATransition动画实现 [self pushWithAnimationType:@"fade"]; - (void)pushWithAnimationType ...

  7. 题解 [HNOI2002]DNA分子的最佳比对 (洛谷P2268)

    题目传送门 (这道题告诉我:初始化要小心) 有没有一点最长公共子序列的赶脚(口胡) 但我觉得挺像 设 表示匹配到s1的第i位,s2的第j位,则有 的初始化要注意:根据的含义,表示s1[i]一直在匹配空 ...

  8. Serilog 是 ASP.NET Core 的一个插件,可以简化日志记录

    [翻译] ASP.NET Core 利用 Docker.ElasticSearch.Kibana 来记录日志 原文: Logging with ElasticSearch, Kibana, ASP.N ...

  9. 规则引擎.Net Core

    .Net Core 环境下构建强大且易用的规则引擎 https://www.cnblogs.com/chenug/p/9160397.html 本文源码: https://github.com/jon ...

  10. CentOS,net core2 sdk nginx、supervisor、mysql

    CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建 作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把 ...