17

我是 Django 的初学者,在使用 pip 安装 django-basic-apps 时遇到问题。

如果我这样做...

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

$ pip install -r requirements.txt

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

如果我这样做...

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

我最终得到了一份basic/blog确实有模板目录的副本。

我怀疑有关django-basic-apps或 pip 的某些内容使其无法通过 pip 安装。我想也许阅读django-basic-apps'ssetup.py会引导我找到答案,但我看不到它。

(我应该补充一点,如果我在不使用 pip 的情况下安装,我可以django-basic-apps正常工作。)

4

1 回答 1

28

当您使用“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',
    ]

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

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

这向setup()函数断言,每个包都应该附有数据文件,这些数据文件是通过在每个包的templates目录下搜索 HTML 文件找到的。

试试看,让我知道这是否也适用于您的机器!

于 2010-09-11T16:01:57.273 回答