2012-03-21 23 views
8

Finalmente voy a comenzar a usar virtualenv para mis proyectos de Django en mi máquina de desarrollo. Antes de comenzar, quiero saber si hay consideraciones especiales para tratar con mis proyectos existentes. Mi presunta flujo de trabajo es algo así como:Usando virtualenv con proyectos heredados de Django

  1. hacer una nueva virtualenv
  2. activar el nuevo virtualenv
  3. Instalar Django allí
  4. pip instalar todos los paquetes Sé que necesito para mi proyecto existente
  5. Copie mis archivos del proyecto Django, archivos de la aplicación y archivos git en la carpeta del proyecto dentro del virtualenv.

Editar 6. fichero requisitos maquillaje para el despliegue

Esto es, obviamente, muy simplificada, pero ¿existen medidas o consideraciones que estoy fundamentalmente que falta? ¿Va a estar feliz de mudarse? ¿También es mejor práctica tener un virtualenv por separado para cada proyecto de Django?

Sé que este no es un problema de código típico, pero espero que aquellos que saben más que yo puedan señalarme en la dirección correcta.

Muchas gracias.

+0

Nunca me arrepentí de usar virtualenv –

+0

Sí, estoy un poco avergonzado de haberlo pospuesto durante tanto tiempo. –

+0

También edite wsgi.py y sus archivos mod_wsgi si es necesario. – User

Respuesta

6

No veo ningún problema grave en la migración de sus proyectos y creo que su plan de 5 pasos es correcto, en particular, para los pasos 3/4/5 (los fusionaría), puede manejar dependencias de proyecto con pip, posiblemente usando requirement files.

Los archivos de requisitos son archivos de texto sin formato que indican qué paquetes deben instalarse en su Virtualenv, incluidos sus proyectos git-tracked que eventualmente pueden implementarse en su entorno virtual como desarrollo eggs (traen consigo las informaciones de control de versiones) . Una vez que tenga un archivo req, es una cuestión de:

pip install -r file.req 

tener todos los paquetes necesarios instalados en el env. Como se puede ver a partir de documentos virtualenv, un archivo típico req contendría algo como:

django==1.3.0 
-e git://git.myproject.org/MyProject.git#egg=MyProject 

lo general mantener cada proyecto en su propia virtualenv, por lo que puede desplegarlo en el servidor de producción de la misma manera que hago para desarrollo local.

+0

Genial. ¡Gracias! –

Cuestiones relacionadas