[英]How is pip install using git different than just cloning a repository?
我是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
的setup.py
会引导我找到答案,但我看不到它。
(我应该补充一点,如果我不使用pip安装,我就能让django-basic-apps
正常运行。)
当您使用“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文件而找到的数据文件。
尝试一下,让我知道这是否适用于您的机器!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.