diferencie mkvirtualenv y mkproject para virturalenvwrapper

Estoy hablando de la virtualenvwrapper de Doug Hellman . Bueno, según él, una vez que instalemos virtualenvwrapper, deberíamos editar el archivo .bashrc como se explica aquí.

Lo que hacemos es agregar las siguientes tres líneas de código:

export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh 

donde .virtualenv es el directorio donde se ubicarían los venvs. Devel es el directorio donde residirá el código.

Observación 1: cuando hago mkvirtualenv proj1 lo que sucede es que se crea un directorio llamado proj1 dentro de .virtualenv pero NO dentro de Devel.

Observación 2: Cuando hago mkproject proj1 , se mkproject proj1 un directorio dentro de .virtualenv y dentro de Devel.

Ahora las preguntas:

  1. Por favor explique la observación 1 .

  2. ¿Qué pasa si dos proyectos tienen los mismos requisitos y quiero usar un solo env y no quiero comenzar con la creación de otro virtualenv y volver a instalar lo mismo que está instalado? ¿Cómo hago esto?

  1. Este es el comportamiento esperado. El comando mkvirtualenv crea un entorno virtual pero no crea un proyecto para usted. Algunas personas hacen desarrollo web con Django, otras hacen progtwigción científica en Python, por lo que sería demasiado amplio para mkvirtualenv configurar algo para ti. Simplemente puede crear un directorio usted mismo si está iniciando un nuevo proyecto.

  2. Si ambos proyectos están en directorios diferentes, puede activar el entorno virtual y luego navegar a cualquiera de los directorios del proyecto para trabajar en eso. También puede ejecutar el código de cada proyecto mientras está en ese entorno virtual. De esta manera, no es necesario volver a instalar los requisitos en un nuevo entorno virtual.