问题:应该在哪里创建virtualenvs?
我对应该在哪里放置我的虚拟环境感到困惑。
在我的第一个django项目中,我使用以下命令创建了该项目
django-admin.py startproject djangoproject
然后,我进入djangoproject目录并运行命令
virtualenv env
在与内部djangoproject
目录相同级别上创建了虚拟环境目录。
这是为特定项目创建virtualenv的错误位置吗?
我给人的印象是,大多数人将所有virtualenv放在一个完全不同的目录中,例如~/virtualenvs
,然后使用virtualenvwrapper在它们之间来回切换。
有正确的方法吗?
回答 0
许多人使用virtualenvwrapper工具,该工具将所有virtualenvs保留在同一位置(~/.virtualenvs
目录),并允许在其中创建和保存它们的快捷方式。例如,您可以这样做:
mkvirtualenv djangoproject
然后再:
workon djangoproject
将virtualenv目录保留在项目本身中可能是一个坏主意,因为您不想分发它(它可能特定于您的计算机或操作系统)。而是使用pip保留一个requirements.txt文件:
pip freeze > requirements.txt
并分发。这将允许使用您的项目的其他人使用以下命令将所有相同的要求重新安装到他们的virtualenv中:
pip install -r requirements.txt
回答 1
更改virtualenv目录的位置会破坏它
这是把仓库树,例如目录以外的下一个优势~/.virtualenvs
有virutalenvwrapper
。
否则,如果将其保留在项目树中,则移动项目位置将破坏virtualenv。
有,--relocatable
但是众所周知它并不完美。
另一个次要优势:您不必这样做.gitignore
。
将其忽略到项目树本身的好处是:
- 使相关的东西保持在一起。
- 您可能永远不会在项目之间重用给定的virtualenv,因此将其放置在其他位置不会带来太多优势
回答 2
通常放置它们的位置与virtualenvwrapper的默认安装放置它们的位置相同: ~/.virtualenvs
相关:virtualenvwrapper是一个出色的工具,可为常用的virtualenv命令提供简写。http://www.doughellmann.com/projects/virtualenvwrapper/
回答 3
如果使用pyenv install Python
,则pyenv-virtualenv将是最佳做法。如果设置了.python-version
文件,则可以在更改工作文件夹时自动激活或停用虚拟环境。Pyenv-virtualenv
还将所有虚拟环境放入$HOME/.pyenv/versions
文件夹中。
回答 4
根据我的个人经验,我建议将所有虚拟环境组织在一个目录中。除非有人具有非常敏锐的内存并且可以记住分散在整个文件系统中的文件/文件夹。不太喜欢仅使用其他工具来管理虚拟环境。在VSCode中,如果我的configure(python.venvPath
)目录包含所有虚拟环境,则它可以自动识别所有虚拟环境。