在 virtualenv 中工作时我应该在哪里?

Where should I be when working in a virtualenv?

我刚刚在我的电脑上安装了 virtualenv 和 virtualenvwrapper。现在我想用它来处理 Django。当我运行mkvirtualenv django,从~,口译员呆在那里。这是否意味着我可以在那里创建我的 django 文件?或者环境不是 那个 虚拟的?我应该创建自己的文件夹而不是在我处理项目的地方吗?我以为 mkvirtualenv 会自动为我创建一个并在 运行 宁 workon 时带我去那里,否则,使用 virtualenvwrapper 有什么意义?

编辑:我的 .bash_profile 中的这几行可能对您有所帮助:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

virtualenwrapper 将在您的 ~$WORKON_HOME/ 目录中创建 virtualenv。这只是 venv,与您可能(或不...)想要使用的任何关联 "project" 目录不同,并且 virtualenvwrapper 确实不会创建。

IOW,此时您与 运行 mkvirtualenv 命令时的目录完全相同。

如果你想将这个 venv 关联到一个项目目录,你必须创建这个目录(如果它还不存在),然后 - 激活你的 venv - 运行 setvirtualenvproject /path/to/your/projectdir (或 cd /path/to/your/projectdir 和这里的 运行 setvirtualenvproject 没有参数)。

完成此操作后,下次您使用 workon myenv 激活您的 venv 时,您也将自动 cd 到您的项目目录,并且 cdproject 命令将带您回到那里如果你 cd 别处。

至于使用(或不使用)virtualenwrapper 的其他原因,您可以阅读文档并自行了解它为原始 virtualenv 添加了哪些其他功能以及您是否需要这些功能。

FWIW 您预期的行为(创建 venv 和项目目录)由 the mkproject command

给出

virtualenvwrapper 的主要优点是将您的环境与特定的工作目录分开。只需激活您的环境:

workon django

提示应更改为:

(django)

现在您可以自由地从您想要的任何目录工作。