繁体   English   中英

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

[英]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-appssetup.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM