zoukankan      html  css  js  c++  java
  • HowTo系列之virtualenv

    1. 简介

    virtualenv是一个用于创建Python独立运行环境的命令行工具。

    在我们使用python进行开发的时候,我们会依赖不同的Python版本和不同的库版本。当我们的项目需要依赖别的开发包的时候,我们会把包下载到python的site-packages目录下,如果不同的项目依赖不同的包版本,那么必然会导致开发过程中包版本冲突。

    所以,virtualenv工具的目的,主要就是为了解决一个问题:将Python的运行环境隔离开,使得不同的运行环境互不影响。

    2. 安装

    通过python的pip工具,可以直接安装virtualenv工具:

    1 pip install virtualenv

    3. 使用

    接下来,将介绍如何使用virtualenv工具创建一个独立的python环境。

    最简单的使用virtualenv的方式很简单,直接一行命令就可以搞定了:

    1 virtualenv isolate
    2 
    3 #Using base prefix #'/Library/Frameworks/Python.framework/Versions/3.4'
    4 #New python executable in isolate/bin/python3.4
    5 #Also creating executable in isolate/bin/python
    6 #Installing setuptools, pip, wheel...done.

    其中的isolate是你需要创建的环境的根目录,执行完这个命令后,会在isolate目录下创建若干文件和目录:

    1 ├── bin
    2 ├── include
    3 └── lib
    • lib目录中包含了新创建的Python运行环境的库文件,在这个环境中安装的所有依赖包都会出现在lib/pythonX.X/site-packages/目录下。
    • bin目录中包含了一些可执行的工具(比如:pip,setuptools以及激活当前环境的activate脚本)和当前环境的python解释器。所有使用当前环境的python解释器启动的python脚本,都会使用当前环境中的依赖包,这就起到了隔离环境的作用。

    3.1 激活环境

    当我们创建了上面的isolate环境以后,我们并没有激活这个环境,如果我们现在在命令行中执行python ,我们使用的还是全局的python环境。我们需要在当前环境的根目录下(也就是上面的isolate目录下)执行下面的命令

    1 source bin/activate

    这个命令会更新我们的shell环境中的PATH变量,来达到激活环境的目的。而且执行完这个命令后,我们的shell提示符也会改变:

    1 # 执行命令前
    2 [21:21:02] ~/personal/isolate -> source bin/activate
    3 # 执行命令后
    4 (isolate)[21:33:29] ~/personal/isolate -> 

    可以看到,在提示符前多了个(isolate)的标记。

    现在,我们如果在shell中执行python命令,使用的就是isolate下的python环境了,在退出该环境前,我们所有的操作都只会影响isolate环境,而不会影响全局环境,包括安装各种包版本,也只会安装到isolate环境中,和其他的环境是互相隔离的。

    3.2 退出环境

    如果我们退出激活的环境,想使用原先全局的python环境,我们可以使用下面的命令:

    1 # 执行前
    2 (isolate)[21:33:31] ~/personal/isolate -> deactivate 
    3 # 执行后
    4 [21:42:14] ~/personal/isolate -> 

    如果想卸载整个环境,可以直接将该环境所在的目录删除就可以了。

  • 相关阅读:
    26、实例化需求:团队如何交付正确的软件
    25、华胥引
    24、老子
    23、禅与摩托车维修艺术(又名万里任禅游)
    22、中国哲学简史
    21、人类简史-从动物到上帝(赫拉利)
    20、淘宝技术这十年
    19.验收测试驱动开发
    18. Scrum敏捷软件开发
    17、胡适谈哲学与人生
  • 原文地址:https://www.cnblogs.com/now-fighting/p/5406083.html
Copyright © 2011-2022 走看看