在哪里应该创buildvirtualenvs?

我很困惑,我应该把自己的虚拟世界放在哪里。

用我的第一个django项目,我用命令“django-admin.py startproject djangoproject”创build了项目。

然后我进入djangoproject目录,运行命令“virtualenv env”,它创build了与内部“djangoproject”目录相同级别的虚拟环境目录。

这是为这个特定的项目创build虚拟世界的错误地方吗?

我得到的印象是,大多数人把他们所有的virtualenvs放在一个完全不同的目录中,例如〜/ virtualenvs,然后使用virtualenvwrapper在它们之间来回切换。

有没有一个正确的方法来做到这一点?

许多人使用virtualenvwrapper工具,它将所有的virtualenvs保存在同一个地方( ~/.virtualenvs目录),并允许创build和保存它们的快捷方式。 例如,你可以这样做:

 mkvirtualenv djangoproject 

然后:

 workon djangoproject 

将virtualenv目录保留在项目本身中可能是一个坏主意,因为你不想分发它(这可能是特定于你的计算机或操作系统的)。 相反,使用pip保留一个requirements.txt文件:

 pip freeze > requirements.txt 

并分发。 这将允许使用你的项目的其他人将所有相同的需求重新安装到他们的virtualenv中:

 pip install -r requirements.txt 

更改virtualenv目录的位置将会破坏它

这是将目录放在版本库树之外的一个主要优点,例如在~/.virtualenvs下。

否则,如果将其保存在项目树中,移动项目位置将会破坏virtualenv。

请参阅: 重命名virtualenv文件夹而不打破它

有 – 可定位,但它是众所周知的不完美。

另一个小优点:你不需要.gitignore它。

如果不是这样的话,我只是把我的virtualenvs gitignored放在项目树本身,把相关的东西放在一起。

这很好,因为你可能永远不会重复使用跨项目的给定的virtualenv。

通常可以接受的地方是virtualenvwrapper默认安装的地方: ~/.virtualenvs

相关:virtualenvwrapper是一个优秀的工具,提供了普通virtualenv命令的简写。 http://www.doughellmann.com/projects/virtualenvwrapper/

如果你使用pyenv install Python ,那么pyenv-virtualenv将是一个最佳实践。 如果设置了.python-version文件,当您更改工作文件夹时,它可以自动激活或取消激活虚拟env。 Pyenv-virtualenv也把所有的虚拟环境放到$HOME/.pyenv/versions文件夹中。