Comment est pip installer en utilisant différents git qu'un simple clonage d'un dépôt?

StackOverflow https://stackoverflow.com/questions/3689685

  •  02-10-2019
  •  | 
  •  

Question

Je suis un débutant avec Django et je vais avoir du mal à django-Installation-base des applications en utilisant pip.

Si je fais ça ...

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

$ pip install -r requirements.txt

je finis avec lib/python2.6/site-packages/basic/blog qui ne dispose pas d'un répertoire de modèles.

Si je fais ça ...

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

je me retrouve avec une copie de basic/blog qui a un répertoire de modèles.

Je soupçonne que quelque chose au sujet django-basic-apps ou pip rend pas pu être installé via pip. Je pensais que peut-être lire la django-basic-apps de setup.py me conduire à la réponse, mais je ne pouvais pas le voir.

(Je dois ajouter que si je, sans utiliser pip, je suis en mesure d'obtenir django-basic-apps fonctionne très bien.)

Était-ce utile?

La solution

Lorsque vous utilisez « pépin » pour installer quelque chose, est utilisé le setup.py du paquet pour déterminer quels sont les paquets à installer. Et ce le setup.py de projet, si je lis correctement, dit « il suffit d'installer ces paquets Python à l'intérieur du répertoire basic. » - le setup.py fait absolument aucune mention de tous les fichiers non-Python, il veut inclus dans l'installation

Cela pourrait être délibéré de la part du développeur, car il est quelque chose d'une tradition pour les packages de Django pour ne pas inclure des modèles - notoirement, même quelque chose d'aussi fondamental que le haut-django.contrib.auth vient sans modèles et vous fait construire ses petites formes à partir du sol à chaque fois! (Ou, pour couper et coller des exemples ailleurs sur le Web.)

Mais si vous vous voulez que les modèles à installer cette distribution Python, quelle que soit la façon dont l'auteur a configuré les choses, alors que la liste des modèles dans le setup.py! Tout d'abord, ajouter quelque chose comme ceci dans le fichier setup.py:

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

Ensuite, ajoutez une dernière variable à l'appel setup() afin qu'elle se termine comme ceci:

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

affirme à la fonction setup() que chaque paquet doit être accompagné par des fichiers de données qui sont trouvés par la recherche de fichiers HTML sous le répertoire templates de chaque paquet.

Essayez-le et laissez-moi savoir si cela fonctionne sur votre machine aussi!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top