17

换句话说,mkvirtualenvmkproject命令之间有什么区别?

我有一个看起来像这样的工作流程:

/dev
    projectA
        appA
        appB
    projectB
        appA
        appB

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

4

2 回答 2

23

From my understanding of the documentation, mkvirtualenv projectenv simply creates a new virtual environment named projectenv in $WORKON_HOME, while mkproject projectenv creates a new virtual environment named projectenv and a new directory named projectenv; after creation, the projectenv directory automatically becomes your current working directory. The virtual environment will exist in $WORKON_HOME and the development directory exists in $PROJECT_HOME.

Note, formkproject to work correctly, you must first set the environment variable PROJECT_HOME to the name of the directory where you would like projects to be created. You can do this in the same place you set your $WORKON_HOME variable or set it up on the fly, e.g.

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject

mynewproject will now be your current virtual environment and a new mynewproject directory will exist in ~/src/allprojects.

于 2012-02-24T04:48:19.690 回答
3

mkvirtualenv 是来自 virtualenvwrapper 的命令,它使管理 python virtualenvs 更容易,而 mkproject 来自 virtualenvwrapper 插件来管理您的项目(直接集成到 virtualenvwrapper 中)

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

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

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

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

编辑: virtualenvwrapper 现在具有复制 virtualenvs的功能,并将目录添加到您的 virtualenv PATH 以共享库

于 2011-11-29T12:09:22.783 回答