¿Hay alguna razón para no verificar el entorno virtualenv junto con el código fuente de un proyecto python?

Estoy siguiendo las instrucciones para configurar trabajar con Python en una Mac ( http://docs.python-guide.org/en/latest/starting/install/osx/ )

Sugiere almacenar el entorno virtual creado por virtualenv en el directory del proyecto … que es, por supuesto, un repository git.

¿Hay alguna razón para no agregar el virtualenv al git repo? Parece lo más natural, pero …

Siempre trate de verificar la fuente , no el resultado de ejecutar un process.

Un virtualenv es bastante específico de la plataforma; un virtualenv de Windows puede requerir diferentes binarys que uno creado en Linux. Las routes en los files de script usarán casi con certeza routes absolutas, no routes relativas que unan virtualenv a una location específica en su disco duro.

En cambio, verifique las instrucciones sobre cómo recrear un virtualenv. Incluye los commands y utiliza herramientas como pip o zc.buildout para que otros puedan recrear el entorno adecuado para su plataforma .

pip permite instalar packages en un virtualenv con un file requirements.txt . Usted cometería ese file. zc.buildout permite definir configuraciones complejas de compilation en files .cfg . Comprométales.

Filosóficamente, el virtualenv no es un código fuente, es un set de artefactos reproducibles. No debe registrarse, como mucho un script para volver a crearlo más fácilmente debe estar registrado.

Prácticamente, un virtualenv es completamente imposible de usar incluso dentro de un sistema único (no puede moverlo sin romper nada), mucho less en diferentes sistemas con la misma configuration general (las routes binarias y los ABI pueden ser diferentes), y mucho less diferentes sistemas operativos ( ¿Realmente tengo que explicar esto?). Por lo tanto, consultarlo realmente le cuesta time en prácticamente todos los casos (porque no puede usarlo después de clonar el repository).

Simplemente describa las dependencies del proyecto en un file requirements.txt y conserve esa versión bajo git junto con el código del proyecto, etc. Es fácil volver a crear el entorno después: simplemente ejecute pip install -r requirements.txt . Es una forma muy concisa y clara de administrar las dependencies de un proyecto.

Una razón para no mantener el medio ambiente en el repository es que boostá el tamaño del repository significativamente, lo que con el time hará que trabajar con tu repo de git sea lento (especialmente clonarlo).

Hay muchas otras razones, por supuesto …