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 djangoproject
directorio 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
~/.virtualenvs
convirutalenvwrapper
.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
--relocatable
pero se sabe que no es perfecto.Otra ventaja menor: no
.gitignore
es 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:
~/.virtualenvs
Relacionado: 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-version
archivo, se puede activar o desactivar automáticamente el entorno virtual cuando cambia la carpeta de trabajo.Pyenv-virtualenv
también ponga todo el entorno virtual en la$HOME/.pyenv/versions
carpeta.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