2011-11-27 15 views
13

En otras palabras, ¿cuál es la diferencia entre los comandos mkvirtualenv y mkproject?¿Cuál es la relación entre entornos y proyectos en virtualenvwrapper?

que tienen un flujo de trabajo que tiene este aspecto:

/dev 
    projectA 
     appA 
     appB 
    projectB 
     appA 
     appB 

Todas las aplicaciones comparten algunos recursos (como el sur, PEP8, etc.), pero otros recursos son específicos de cada aplicación. ¿Debo usar virtualenvwrapper "proyectos" para mantener estas dependencias separadas?

+0

¿Qué es un proyecto virtualenvwrapper? Virtualenwrapper crea, administra y elimina virtualenvs. Puede hacer cualquier virtualenv que quiera activo para una terminal. – hughdbrown

Respuesta

15

De mi comprensión de la documentation, mkvirtualenv projectenv simplemente crea un nuevo entorno virtual denominado projectenv en $WORKON_HOME, mientras mkproject projectenv crea un nuevo entorno virtual denominado projectenv y un nuevo directorio llamado projectenv; después de la creación, el directorio projectenv se convierte automáticamente en su directorio de trabajo actual. El entorno virtual existirá en $WORKON_HOME y el directorio de desarrollo existe en $PROJECT_HOME.

Nota: para que mkproject funcione correctamente, primero debe establecer la variable de entorno PROJECT_HOME en el nombre del directorio donde desea que se creen los proyectos. Puede hacer esto en el mismo lugar donde configura su variable $WORKON_HOME o configurarla sobre la marcha, p.

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject 

mynewproject ahora será su entorno virtual actual y un nuevo directorio mynewproject existirá en ~/src/allprojects.

3

mkvirtualenv es comando desde virtualenvwrapper que hace virtualenvs gestión pitón más fácil, mientras mkproject proviene de un plugin virtualenvwrapper para gestionar sus proyectos (que se integra directamente en virtualenvwrapper)

la página del plugin menciona las siguientes características:

Administra los directorios de trabajo de su proyecto de desarrollo junto con sus entornos virtualenv . Define una API para crear plantillas en , crea rápidamente nuevos entornos de manera consistente. Use el comando workon desde virtualenvwrapper para alternar entre proyectos. Ganchos configurables por el usuario para personalizar nuevos proyectos.

No tiene que crear o administrar sus proyectos utilizando el complemento virtualenvwrapper para usar los comandos de virtualenv. Es solo un complemento práctico para cosas como intercambiar al directorio del proyecto al emitir un comando workon, o crear nuevos proyectos a partir de plantillas.

virtualenv por sí mismo no tiene capacidad para compartir bibliotecas, excepto con los paquetes de sitio del sistema si usa el marcador correcto. Tropecé una vez con un proyecto que te dio esta habilidad, entre otras cosas, pero nunca la volví a encontrar.

EDITAR: virtualenvwrapper ahora tiene la funcionalidad de copy virtualenvs, y para agregar directorios a su PATH virtualenv con el fin de share libraries.

Cuestiones relacionadas