Pregunta

yo soy un principiante con Django y estoy teniendo problemas para Instalación de django-basic-aplicaciones usando las PIP.

Si hago esto ...

$ cat requirements.txt 
git+git://github.com/nathanborror/django-basic-apps.git

$ pip install -r requirements.txt

termino con lib/python2.6/site-packages/basic/blog que no tiene un directorio de plantillas.

Si hago esto ...

git clone http://github.com/nathanborror/django-basic-apps.git

Me terminar con una copia de basic/blog que tiene un directorio de plantillas.

sospecho algo sobre django-basic-apps o pip hace que no sea capaz de ser instalado a través de la pipa. Pensé que tal vez la lectura de django-basic-apps setup.py me llevaría a la respuesta, pero no pude verlo.

(debo añadir que si instalo sin utilizar PIP, soy capaz de conseguir django-basic-apps funcionando muy bien.)

¿Fue útil?

Solución

Cuando se utiliza "pip" para instalar algo, setup.py del paquete se utiliza para determinar qué paquetes instalar. Y setup.py de este proyecto, si estoy leyendo correctamente, dice que "sólo tiene que instalar estos paquetes de Python dentro del directorio basic" -. setup.py la hace absolutamente ninguna mención de cualquier no-Python archivos que quiere incluir en la instalación

Esto podría ser deliberada por parte del desarrollador, ya que es una especie de tradición para los paquetes de Django no incluir las plantillas - notoriamente, incluso algo tan básico como la incorporada en django.contrib.auth viene sin ninguna plantilla y hace que usted construye sus formas poco desde cero cada vez! (O, para cortar y pegar de ejemplos en otros lugares en la web.)

Pero si usted mismo quiere las plantillas que se instalarán con esta distribución de Python, independientemente de cómo el autor ha creado las cosas, entonces sólo lista las plantillas en el setup.py! En primer lugar, añadir algo como esto en el fichero de setup.py:

template_patterns = [
    'templates/*.html',
    'templates/*/*.html',
    'templates/*/*/*.html',
    ]

A continuación, añadir una última variable a la llamada setup() de modo que termine de esta manera:

...
packages=packages,
package_data=dict( (package_name, template_patterns)
                   for package_name in packages ))

Esta afirma que la función setup() que cada paquete debe ir acompañada de los archivos de datos que se encuentran en la búsqueda de archivos HTML debajo del directorio templates de cada paquete.

Pruébelo, y quiero saber si esto funciona en su máquina también!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top