Estructura de files Django, Pyenv y Git en Ubuntu

enter image description here

Estoy trabajando para configurar un proyecto de django en ec2 con una instancia de Ubuntu 14.4 LTS. Quiero escribir mi código usando python 3 y django. Me han informado que la mejor manera de hacerlo es usar un virtualenv. Siguiendo https://robinwinslow.co.uk/2013/12/26/python-3-4-virtual-environment/

Lo intenté:

~$ pyvenv-3.4 djenv 

Lo cual parece crear un virtualenv (vea la captura de pantalla). Ahora tengo 2 preguntas:

1) ¿Qué carpeta debería colocar mi proyecto django? – Estoy pensando en la carpeta djenv. En otras palabras, correría:

 /home/ubuntu/djenv$ django-admin.py startproject testproject. 

2) iniciar un repository git. Supongo que lo haría en el mismo lugar, es decir,

 /home/ubuntu/djenv$ git init 

desde adentro

¿Esto parece correcto o hay una mejor manera de hacer esto?

El código fuente de su proyecto debe estar completamente separado de su env virtual en el sistema de files. Si están en el mismo lugar, como sugieres, terminarás revisando innecesariamente las librerías en tu repository de git y eso ocupará más espacio y acabará causando problemas.

Una vez que hayas activado un virtualenv, puedes ejecutar Python y usar todas las bibliotecas en él. No necesita ninguna connection en el sistema de files.

Deberías save un file PIP en tu git repo en algún lugar que describa cómo instalar las dependencies relevantes en tu virtualenv para que puedas volver a crearlo en otra máquina.

En mi máquina mis proyectos están en /home/me/projects/«project» y mis virtualenvs están en /home/me/envs/«envname» . Yo uso virtualenvwrapper, que facilita las cosas.

Crea un ambiente

 $ mkvirtualenv test New python executable in test/bin/python Installing Setuptools......done. Installing Pip.........done. 

Actívalo

 $ workon test 

Python ahora se refiere al que está en mi entorno. Tiene sus propios packages de sitio, etc.

 $ which python /Users/joe/Envs/test/bin/python 

Si lo ejecutamos y miramos los paths, apuntan hacia el virtualenv. Aquí es donde busca packages (lotes eliminados de mi path por simplicidad).

 $ python Python 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "cnetworkingits" or "license" for more information. >>> import sys >>> sys.path ['', '/Users/joe/Envs/test/lib/python27.zip', '/Users/joe/Envs/test/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/Users/joe/Envs/test/lib/python2.7/site-packages'] >>>