热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:工具篇|Python虚拟环境的搭建与管理virtualenv/virtualenvwrapper

篇首语:本文由编程笔记#小编为大家整理,主要介绍了工具篇|Python虚拟环境的搭建与管理virtualenv/virtualenv-wrapper相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了工具篇 | Python虚拟环境的搭建与管理virtualenv/virtualenv-wrapper相关的知识,希望对你有一定的参考价值。




0. 前言



  1. 演示环境:win10+python3.6


  2. 第三方包:



    1. virtualenv


    2. virtualenvwrapper



  3. 本文内容:搭建与管理虚拟环境



1. 为什么需要使用虚拟环境

当我们在使用Python的时候,经常会使用pip来安装第三方包,那么我们会遇到这样两个问题:



  1. 所有的包都安装到了默认的路径下,如果是windows系统,可能会占用系统资源。


  2. 有时候我们的需要运行别人的代码,但是该代码与我们已安装的库冲突。


对于第一个问题,可能大家的电脑性能比较高,也不在乎这点系统资源,对于第二个问题,如果不怕折腾,也可以不断的卸载第三方库,然后在安装。如果实在懒得折腾,直接放弃Python就好了~~~

这时,虚拟环境就是很好的解决方案,虽然虚拟环境的用途不止于这两种情况。大家也可以想象一下还有什么情况下你可能会需要用到虚拟环境。


2. 搭建和使用虚拟环境

接下来进入正题,如何搭建一个虚拟环境,首先使用pip安装第三方包virtualenv。

pip install virtualenv

由于我的环境当中已经安装好了virtualenv,会显示如下结果。

C:\Users\Administrator>pip install virtualenv
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: virtualenv in d:\python\lib\site-packages (16.4.3)

选择一个路径来建立虚拟环境,比如:“G:\demos”

G:\demos>virtualenv demoEnv
Using base prefix 'd:\\python'
New python executable in G:\demos\demoEnv\Scripts\python.exe
Installing setuptools, pip, wheel...
done.

使用命令virtualenv + 虚拟环境名称建立一个虚拟环境,如上述,我给虚拟环境起名为demoEnv

接下来看看这个命令的作用是什么。

G:\demos>dir
驱动器 G 中的卷是 新加卷
卷的序列号是 902C-6430
G:\demos 的目录
2019/06/03  21:59    

        .
2019/06/03  21:59             ..
2019/06/03  21:59              demoEnv
              0 个文件              0 字节
              3 个目录 375,171,985,408 可用字节
G:\demos>cd demoEnv
G:\demos\demoEnv>dir
驱动器 G 中的卷是 新加卷
卷的序列号是 902C-6430
G:\demos\demoEnv 的目录
2019/06/03  21:59             .
2019/06/03  21:59             ..
2019/04/12  23:40              Include
2019/06/03  21:59              Lib
2018/12/24  00:22            30,342 LICENSE.txt
2019/06/03  21:59              Scripts
2019/06/03  21:59              tcl
              1 个文件         30,342 字节
              6 个目录 375,171,985,408 可用字节

可以看到在这里目录里出现了一下新东西,这些东西就是virtualenv为我们创建的虚拟环境。

当我们需要使用这个虚拟环境的时候,在虚拟环境目录下使用命令:

Scripts\activate

想要退出虚拟环境的时候,在虚拟环境目录下使用命令:

Scripts\deactivate

演示如下:

G:\demos\demoEnv>Scripts\activate
(demoEnv) G:\demos\demoEnv>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(demoEnv) G:\demos\demoEnv>pip list
Package    Version
---------- -------
pip        19.1.1
setuptools 41.0.1
wheel      0.33.4
(demoEnv) G:\demos\demoEnv>Scripts\deactivate
G:\demos\demoEnv>

我们可以看到,在进入虚拟环境之后,使用pip list,只有pip,setuptoolswheel三个包。当你在命令行中进入虚拟环境中的时候,你所进行的所有开发,都只在这环境下有效。

PS:在Linux下,你需要使用souce bin/activatesource bin/deactivate来进入和退出虚拟环境


3. 使用virtualenvwrapper管理虚拟环境

那么问题来了,我们开发不同的东西,使用不同的虚拟环境, 当我们开发的东西越来越多,虚拟环境也越来越多,那么来如何进行管理呢?

我们使用virtualenvwrapper,它是更加高效友好的工具。我们使用如下命令来安装virtualenvwrapper:

pip install virtualenvwrapper

由于我的环境当中已经安装好了,显示的内容会是这样:

C:\Users\Administrator>pip install virtualenvwrapper
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: virtualenvwrapper in d:\python\lib\site-packages (4.8.4)
Requirement already satisfied: virtualenv in d:\python\lib\site-packages (from virtualenvwrapper) (16.4.3)
Requirement already satisfied: virtualenv-clone in d:\python\lib\site-packages (from virtualenvwrapper) (0.5.2)
Requirement already satisfied: stevedore in d:\python\lib\site-packages (from virtualenvwrapper) (1.30.1)
Requirement already satisfied: six>=1.10.0 in d:\python\lib\site-packages (from stevedore->virtualenvwrapper) (1.12.0)
Requirement already satisfied: pbr!=2.1.0,>=2.0.0 in d:\python\lib\site-packages (from stevedore->virtualenvwrapper) (5.1.3)

下面说明virtaulenvwrapper使用的几个命令:



  1. 创建虚拟环境:mkvirtualenv 虚拟环境名


  2. 删除虚拟环境:rmvirtualenv 虚拟环境名


  3. 列出所有虚拟环境:lsvirtualenv


  4. 切换到某个虚拟环境:workon 虚拟环境名


  5. 退出当前虚拟环境:deactivate


  6. 进入虚拟环境目录:cdvirtualenv


PS:使用上述命令创建的虚拟环境,默认地会创建在用户目录中,当我们需要自定义某个目录作为默认目录时,在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。

比如我的默认路径是:

C:\Users\Administrator>echo %WORKON_HOME%
G:\my_pyenv

下面是上述几个命令的演示:

C:\Users\Administrator>lsvirtualenv
dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv
mytornadoenv
my_djangoenv
C:\Users\Administrator>mkvirtualenv Demo20190603
Using base prefix 'd:\\python'
New python executable in G:\my_pyenv\Demo20190603\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
(Demo20190603) C:\Users\Administrator>lsvirtualenv
dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
Demo20190603
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv
mytornadoenv
my_djangoenv
(Demo20190603) C:\Users\Administrator>deactivate
C:\Users\Administrator>workon Demo20190603
(Demo20190603) C:\Users\Administrator>cdvirtualenv
(Demo20190603) G:\my_pyenv\Demo20190603>deactivate
G:\my_pyenv\Demo20190603>rmvirtualenv Demo20190603
  Deleted G:\my_pyenv\Demo20190603
G:\my_pyenv>lsvirtualenv
dir /b /ad "G:\my_pyenv"
==============================================================================
algorithmenv
demoEnv
myBaseTechenv
myDataScienceEnv
myflaskenv



mytornadoenv
my_djangoenv




推荐阅读
  • 本文介绍了一种简化版的在线购物车系统,重点探讨了用户登录和购物流程的设计与实现。该系统通过优化界面交互和后端逻辑,提升了用户体验和操作便捷性。具体实现了用户注册、登录验证、商品浏览、加入购物车以及订单提交等功能,旨在为用户提供高效、流畅的购物体验。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 如何在 Python 编程中实现各种数据类型的字符串转换? ... [详细]
  • 使用 XlsxWriter 模块在 Python 中实现 Excel 单元格内多种格式文本的高效写入
    XlsxWriter 是一个强大的 Python 库,专门用于生成 `.xlsx` 格式的 Excel 文件。该模块不仅支持基本的数据写入,还提供了丰富的格式化选项,能够实现单元格内多种文本样式的高效处理。无论是字体、颜色、对齐方式还是边框,XlsxWriter 都能轻松应对,满足用户在 Excel 视图中的各种需求。 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • 本文详细介绍了在Ubuntu操作系统中使用GDB调试工具深入分析和调试标准库函数`printf`的源代码过程。通过具体步骤和实例,展示了如何设置断点、查看变量值及跟踪函数调用栈,帮助开发者更好地理解`printf`函数的工作原理及其内部实现细节。 ... [详细]
  • 深入解析:使用C++实现Python字节数组(struct)的高效处理方法 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • 第五章详细探讨了 Red Hat Enterprise Linux 6 中的 Ext3 文件系统。5.1 节介绍了如何创建 Ext3 文件系统,包括必要的命令和步骤,以及在实际操作中可能遇到的问题和解决方案。此外,还涵盖了 Ext3 文件系统的性能优化和维护技巧,为用户提供全面的操作指南。 ... [详细]
author-avatar
潜水的飞机537
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有