Python中的virtualenvwrapper介绍

454 阅读2分钟

virtualenvwrapper

  • virtualenvwrapper是标准virtualenv工具的一个补充。它简化了管理虚拟环境的过程,有创建和删除虚拟环境的包装器等等。
  • 其他的一些功能如下。
    • 命令的标签完成。
    • 所有操作都有可配置的钩子。
    • 插件系统。

目录

为什么使用虚拟环境?

为什么使用virtualenvwrapper而不是virtualenv?

开始使用

演示

回顾

进阶

超越

为什么使用虚拟环境?

  • 虚拟环境可以更好地管理你的工作流程。
  • 减少了产生依赖性冲突的机会。
  • 为你的Python包库提供了结构,因为你的包库没有组织,可能几乎不可能找到任何东西,或者管理。

为什么使用virtualenvwrapper而不是virtualenv?

  • virtualenv将venv方向存储在项目目录中,而virtualenvwrapper则将所有的虚拟环境存储在一起。

    • 这更好,因为它可以更好的管理你所有的虚拟环境。在下图所示的目录中找到它:
    $ cd ~/.virtualenvs
    
  • 消除了每次都要找到激活脚本来启用虚拟环境的需要。现在你只需要在你的终端输入以下命令:

     $ workon {name_of_enviornment}
    
  • 然后要禁用环境就更简单了,只需在终端键入以下命令即可:

     $ deactivate
    

开始工作

Pip install (pip install virtualenvwrapper)
在我们开始之前需要注意的是,支持的shell是bash、ksh和zsh。对于windows来说,使用virtualenvwrapper-win,它是virtualenvwrapper在windows下的一个重新实现。

  • 要开始使用,首先我们需要安装virtualenvwrapper

     $ sudo pip install virtualenvwrapper
    
  • 现在我们可以开始配置shell,将virtualenvwrapper的命令加载到shellrc文件中,该文件可以是.bashrc或任何类似的文件,只要在你的配置文件中加入以下几行即可。(记住要保存)

    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
    source /usr/local/bin/virtualenvwrapper.sh
    
  • 现在你可以用virtualenvwrapper制作你的虚拟环境;安装完成。

    $ mkvirtualenv {name_of_environment}
    

演示

  • 在这个演示中,我们将设置一个可能的数据科学工程师的虚拟环境。

  • 让我们从创建环境开始

    $ mkvirtualenv data_science
    
  • 它应该自动把你放入环境中,但如果你退出,这就是你将再次进入环境的方法。

     $ workon data_science
    
  • 现在让我们安装几个包来演示一下其他的功能。注意显示我们在一个虚拟环境中的指示。

     (data_science)$ pip install numpy
     (data_science)$ pip install matplotlib
     ...
     # To view the packages on the environment
     (data_science)$ lssitepackages
     # To delete environment
     (data_science)$ rmvirtualenv data_science
     # Help command which will show all the commands and info on how to use them
     $ virtualenvwrapper
    

回顾一下

问题1

如何用virtualenvwrapper启用一个环境?

使用激活脚本

$ env {name_of_environment}.

workonname_of_environmentworkon {name\_of\_environment} work {name_of_environment} 启用环境。

workname_of_environmentwork {name\_of\_environment} workon {name_of_environment} 启用环境。

$ workon {name_of_environment} 是命令。

问题2

如何查看当前虚拟环境中的软件包

(name_of_environment)$ ls sitepackages

(name_of_environment)$ opensitepackages

$ ls sitepackages

(name_of_environment)$ lssitepackages

(name_of_environment)$ lssitepackages就是这个命令。

高级

覆盖更多的一些命令和它们的所有参数。

 $ workon [(-c|--cd)|(-n|--no-cd)] [environment_name|"."]

如果有-c或-cd标志,它也是将工作目录更新为项目目录。如果你使用-n或--no-cd,它将不会改变你的工作目录。

如果用.来代替环境名称,那么它将使用当前工作目录的名称。

 $ add2virtualenv directory1 directory2 ...

在某些情况下,你可能希望与其他virtualenv共享你的软件包。这允许你通过使用命令和列出其他软件包的目录来实现。

 $ setvirtualenvproject [virtualenv_path project_path]

通过OpenGenus的这篇文章,你一定对Python中的virtualenvwrapper有了完整的了解。