换句话说,mkvirtualenv
和mkproject
命令之间有什么区别?
我有一个看起来像这样的工作流程:
/dev
projectA
appA
appB
projectB
appA
appB
所有应用程序共享一些资源(如 South、pep8 等),但其他资源特定于每个应用程序。我应该使用 virtualenvwrapper “项目”来保持这些依赖项分开吗?
换句话说,mkvirtualenv
和mkproject
命令之间有什么区别?
我有一个看起来像这样的工作流程:
/dev
projectA
appA
appB
projectB
appA
appB
所有应用程序共享一些资源(如 South、pep8 等),但其他资源特定于每个应用程序。我应该使用 virtualenvwrapper “项目”来保持这些依赖项分开吗?
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
.
mkvirtualenv 是来自 virtualenvwrapper 的命令,它使管理 python virtualenvs 更容易,而 mkproject 来自 virtualenvwrapper 插件来管理您的项目(直接集成到 virtualenvwrapper 中)
插件页面提到了以下功能:
管理您的开发项目工作目录以及您的 virtualenv 环境。定义用于创建模板的 API,以一致地快速创建新环境。使用 virtualenvwrapper 中的 workon 命令在项目之间切换。用于自定义新项目的用户可配置挂钩。
您无需使用 virtualenvwrapper 插件创建或管理您的项目即可使用 virtualenv 命令。它只是一个方便的插件,用于在发出 workon 命令或从模板创建新项目时切换到项目目录。
如果您使用正确的标志,virtualenv 本身没有库共享功能,除了系统站点包。我偶然发现了一个项目,它给了你这种能力,但再也没有找到它。
编辑: virtualenvwrapper 现在具有复制 virtualenvs的功能,并将目录添加到您的 virtualenv PATH 以共享库。