python - descargar - virtualenv django
¿Dónde deberían crearse virtualenvs? (4)
Estoy confundido en cuanto a dónde debo poner mis virtualenvs.
Con mi primer proyecto django, creé el proyecto con el comando "django-admin.py startproject djangoproject".
Luego copié en el directorio djangoproject y ejecuté el comando "virtualenv env", que creó el directorio del entorno virtual en el mismo nivel que el directorio interno "djangoproject".
¿Es este el lugar equivocado para crear el virtualenv para este proyecto en particular?
Me da la impresión de que la mayoría de las personas mantienen todos sus virtualenvs juntos en un directorio completamente diferente, por ejemplo ~ / virtualenvs, y luego usan virtualenvwrapper para alternar entre ellos.
¿Hay una forma correcta de hacer esto?
El lugar generalmente aceptado para ponerlos es el mismo lugar donde la instalación predeterminada de virtualenvwrapper los pone: ~/.virtualenvs
Relacionado: virtualenvwrapper es una excelente herramienta que proporciona shorthands para los comandos virtualenv comunes. virtualenvwrapper
Si usa pyenv install Python
, entonces pyenv-virtualenv será una mejor práctica. Si configura el archivo .python-version
, puede activar o desactivar automáticamente el entorno virtual cuando cambie la carpeta de trabajo. Pyenv-virtualenv
también puso todo el env virtual en la carpeta $HOME/.pyenv/versions
.
Cambiar la ubicación del directorio virtualenv lo rompe
Esta es una gran ventaja de colocar el directorio fuera del árbol del repositorio, por ejemplo, bajo ~/.virtualenvs
con virutalenvwrapper
.
De lo contrario, si lo mantiene en el árbol del proyecto, mover la ubicación del proyecto romperá el virtualenv.
Consulte: Cambiar el nombre de una carpeta virtualenv sin romperla
Hay --relocatable
pero se sabe que no es perfecto.
Otra ventaja menor: no es necesario .gitignore
.
Si no fuera por eso, dejaría virtualmente a mis virtualenvs en el árbol del proyecto para mantener las cosas relacionadas muy juntas.
Esto está bien ya que probablemente nunca reutilizará un virtualenv dado en todos los proyectos.
Mucha gente usa la herramienta virtualenvwrapper , que mantiene todos los virtualenvs en el mismo lugar (el directorio ~/.virtualenvs
) y permite atajos para crearlos y mantenerlos allí. Por ejemplo, puede hacer:
mkvirtualenv djangoproject
y luego más tarde:
workon djangoproject
Probablemente sea una mala idea mantener el directorio virtualenv en el proyecto en sí, ya que no desea distribuirlo (puede ser específico para su computadora o sistema operativo). En cambio, mantenga un archivo requirements.txt usando pip :
pip freeze > requirements.txt
y distribuir eso. Esto permitirá que otros que usen su proyecto vuelvan a instalar todos los mismos requisitos en sus virtualenv con:
pip install -r requirements.txt