Estoy confundido en cuanto a dónde debería poner mis virtualenvs.
Con mi primer proyecto de django, creé el proyecto con el comando
django-admin.py startproject djangoproject
Luego hice cd en el directorio djangoproject y ejecuté el comando
virtualenv env
que creó el directorio del entorno virtual al mismo nivel que el djangoprojectdirectorio interno .
¿Es este el lugar equivocado para crear el virtualenv para este proyecto en particular?
Tengo la impresión de que la mayoría de la gente mantiene todos sus virtualenv juntos en un directorio completamente diferente, por ejemplo ~/virtualenvs, y luego usa virtualenvwrapper para alternar entre ellos.
¿Existe una forma correcta de hacer esto?

Cambiar la ubicación del directorio virtualenv lo rompe
Esta es una de las ventajas de colocar el directorio fuera del árbol del repositorio, por ejemplo, debajo de
~/.virtualenvsconvirutalenvwrapper.De lo contrario, si lo mantiene en el árbol del proyecto, mover la ubicación del proyecto romperá el virtualenv.
Ver: Cambiar el nombre de una carpeta virtualenv sin romperla
Lo hay
--relocatablepero se sabe que no es perfecto.Otra ventaja menor: no
.gitignorees necesario.Las ventajas de ponerlo en gitignored en el árbol del proyecto son:
fuente
El lugar generalmente aceptado para colocarlos es el mismo lugar donde los coloca la instalación predeterminada de virtualenvwrapper:
~/.virtualenvsRelacionado: virtualenvwrapper es una excelente herramienta que proporciona atajos para los comandos comunes de virtualenv. http://www.doughellmann.com/projects/virtualenvwrapper/
fuente
Si lo usa
pyenv install Python, pyenv-virtualenv será una mejor práctica. Si se establece un.python-versionarchivo, se puede activar o desactivar automáticamente el entorno virtual cuando cambia la carpeta de trabajo.Pyenv-virtualenvtambién ponga todo el entorno virtual en la$HOME/.pyenv/versionscarpeta.fuente
Desde mi experiencia personal, recomendaría organizar todos los entornos virtuales en un solo directorio. A menos que alguien tenga una memoria extremadamente nítida y pueda recordar archivos / carpetas esparcidos por el sistema de archivos. No soy un gran fanático del uso de otras herramientas solo para administrar entornos virtuales. En VSCode, si configuro (
python.venvPath) el directorio que contiene todos los entornos virtuales, puede reconocerlos automáticamente a todos.fuente