【问题标题】:What's the relationship between environments and projects in virtualenvwrapper?virtualenvwrapper中的环境和项目之间有什么关系?
【发布时间】:2012-01-07 11:12:03
【问题描述】:

也就是说,mkvirtualenvmkproject 命令有什么区别?

我的工作流程如下所示:

/dev
    projectA
        appA
        appB
    projectB
        appA
        appB

所有应用共享一些资源(如 South、pep8 等),但其他资源特定于每个应用。我应该使用 virtualenvwrapper “项目”来保持这些依赖项分开吗?

【问题讨论】:

  • 什么是 virtualenvwrapper 项目? Virtualenwrapper 创建、管理和删除 virtualenvs。你可以让任何你喜欢的 virtualenv 为终端激活。

标签: python virtualenv pip virtualenvwrapper


【解决方案1】:

根据我对documentation的理解,mkvirtualenv projectenv只是在$WORKON_HOME中创建了一个名为projectenv的新虚拟环境,而mkproject projectenv创建了一个名为projectenv的新虚拟环境和一个名为@987654327的新目录@;创建后,projectenv 目录自动成为您当前的工作目录。虚拟环境存在$WORKON_HOME,开发目录存在$PROJECT_HOME

注意,要使mkproject 正常工作,您必须首先将环境变量PROJECT_HOME 设置为您希望在其中创建项目的目录的名称。您可以在设置 $WORKON_HOME 变量的同一位置执行此操作,或者即时设置它,例如

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject

mynewproject 现在将成为您当前的虚拟环境,~/src/allprojects 中将存在一个新的mynewproject 目录。

【讨论】:

    【解决方案2】:

    mkvirtualenv 是来自 virtualenvwrapper 的命令,可以更轻松地管理 python virtualenvs,而 mkproject 来自 virtualenvwrapper 插件来管理您的项目(直接集成到 virtualenvwrapper 中)

    插件页面提到了以下功能:

    管理您的开发项目工作目录以及您的 virtualenv 环境。定义用于创建模板的 API 快速一致地创建新环境。使用 workon 命令 virtualenvwrapper 在项目之间切换。用户可配置的钩子 用于定制新项目。

    您无需使用 virtualenvwrapper 插件创建或管理您的项目即可使用 virtualenv 命令。它只是一个方便的插件,用于在发出 workon 命令或从模板创建新项目时切换到项目目录。

    virtualenv 本身没有库共享功能,除非您使用正确的标志,但系统站点包除外。我偶然发现了一个项目,它赋予了你这种能力,但再也没有找到它。

    编辑:virtualenvwrapper 现在具有copy virtualenvs 的功能,并将目录添加到您的virtualenv PATH 以便share libraries

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-09
      • 2013-10-30
      • 2015-01-02
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多