如何使用git安装pip不仅仅是克隆存储库?

gol*_*her 14 python django pip

我是Django的初学者,我在使用pip安装django-basic-apps时遇到了麻烦.

如果我这样做......

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

$ pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

我最终lib/python2.6/site-packages/basic/blog没有模板目录.

如果我这样做......

git clone http://github.com/nathanborror/django-basic-apps.git
Run Code Online (Sandbox Code Playgroud)

我最终得到了一份basic/blogDOES有一个模板目录的副本.

我怀疑django-basic-apps或pip使它无法通过pip安装.我想,也许阅读django-basic-appssetup.py将导致我的答案,但我无法看到它.

(我应该补充一点,如果我不使用pip安装,我就可以django-basic-apps正常工作了.)

Bra*_*des 26

当您使用"pip"安装某些东西时,该软件包setup.py用于确定要安装的软件包.setup.py如果我正确地阅读它,这个项目就说"只需在basic目录中安装这些Python包" - 这setup.py绝不会提及它想要包含在安装中的任何非Python文件.

这可能是开发人员的一部分,因为Django软件包不包含模板是一种传统 - 众所周知,即使是内置的django.contrib.auth东西也没有任何模板,并且让你从头开始构建它的小形式每一次!(或者,从网上其他地方的示例中剪切和粘贴.)

但是如果您自己希望使用此Python发行版安装模板,无论作者如何设置,那么只需在模板中列出模板setup.py!首先,在setup.py文件中添加以下内容:

template_patterns = [
    'templates/*.html',
    'templates/*/*.html',
    'templates/*/*/*.html',
    ]
Run Code Online (Sandbox Code Playgroud)

然后,将最后一个变量添加到setup()调用中,使其结束如下:

...
packages=packages,
package_data=dict( (package_name, template_patterns)
                   for package_name in packages ))
Run Code Online (Sandbox Code Playgroud)

这证明了setup()每个包都应该附带通过在每个包的templates目录下搜索HTML文件而找到的数据文件.

尝试一下,让我知道这是否适用于您的机器!

  • 谢谢布兰登.它有效,但更重要的是,我现在更了解它.谢谢! (2认同)
  • 谢谢布兰登,很好的答案.FWIW我非常怀疑这是故意的; 如果模板不打算与应用程序一起使用,那么将模板包含在源存储库中的该位置是不常见的.简单包装失败的可能性更大; 我已经向项目提交了一个错误,以确保作者知道这个问题. (2认同)