2012-08-29 53 views
54

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

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

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

这是错误的地方,为这个特定的项目创建virtualenv?

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

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

回答

80

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

mkvirtualenv djangoproject 

再后来:

workon djangoproject 

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

pip freeze > requirements.txt 

和分发。这将允许其他人使用你的项目都是一样的要求重新安装到他们的virtualenv有:

pip install -r requirements.txt 
+0

不错,我没有看过点的东西,但如果我需要一天,这将派上用场 –

+0

PIP在Django社区非常流行,非常容易使用。 –

+0

谢谢大卫,这就是我的想法。我知道需求,并且正在做这件事。我只是不确定venv应该去哪里。你对它的操作系统特定的评论是做你的建议的一个很好的理由。 – William

4

普遍接受的地方,把他们的是,virtualenvwrapper的默认安装使他们在同一个地方:~/.virtualenvs

相关:virtualenvwrapper是一个很好的工具,它为常见的virtualenv命令提供了简洁的功能。 http://www.doughellmann.com/projects/virtualenvwrapper/

10

更改的virtualenv目录的位置打破它

这是把目录库树,例如之外的一大优势根据~/.virtualenvsvirutalenvwrapper

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

参见:Renaming a virtualenv folder without breaking it

--relocatable,但已知的是,不是完美的。

另一个小优点:你不用.gitignore吧。

如果不是这样的话,我会把我的virtualenvs gitignored留在项目树本身,以保持相关的东西靠得很近。

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

0

如果您使用pyenv install Python,那么pyenv-virtualenv将是最佳做法。如果设置了.python-version文件,则可以在更改工作文件夹时自动激活或取消激活虚拟env。 Pyenv-virtualenv也把所有的虚拟env文件夹放入$HOME/.pyenv/versions文件夹。

相关问题