Django应用程序,用于帮助管理外部依赖项
项目描述
django-dependency
通过任何版本控制系统托管的外部依赖项管理器。
安装
下载应用程序并将其添加到您的Python路径
hg clone https://django-dependency.googlecode.com/hg/ django-dependency cd django-dependency python setup.py install
将其添加到您的INSTALLED_APPS
INSTALLED_APPS = ( # ... 'deps', )
设置
将DEPENDENCIES添加到您的设置文件
如果您正在从svn:externals迁移,可以使用脚本自动生成依赖项列表。只需运行以下命令,将输出复制/粘贴到您的设置文件中,并确保您的INSTALLED_APPS是最新的
create_deps.py apps/external_apps libs/external_libs
如果您不是从svn:externals迁移,您可以手动设置您的DEPENDENCIES和INSTALLED_APPS,如下所示
import os import deps # ... PROJECT_PATH = os.path.abspath('%s/..' % path.dirname(__file__)) # ... DEPDENDENCY_ROOT = os.path.join(PROJECT_PATH, 'external') DEPENDENCIES = ( # subversion deps.SVN( #Uncomment to pin to revision 22 #rev=22, 'http://code.djangoproject.com/svn/django/trunk/django', root=DEPDENDENCY_ROOT, ), # mercurial deps.HG( #Uncomment to pin to revision 8ed91139be12 #rev='8ed91139be12', 'http://bitbucket.org/jezdez/django-robots/', app_name='robots', root=DEPDENDENCY_ROOT, ), # git pinned to a SHA1 id with rev can use HEAD or other tags deps.GIT( 'git://github.com/howiworkdaily/django-faq.git', app_name='faq', project_name='django-faq', root=DEPDENDENCY_ROOT, rev='85a23e71ba23d4fc5cd92d81a02c1b9073161a21', ), ) # ... INSTALLED_APPS = ( # ... 'robots', )
更新manage.py
要动态地将依赖项添加到您的Python路径,请将以下代码添加到manage.py中,在导入设置之后但在导入Django的任何内容之前
import deps deps.add_all_to_path(projectname.settings, auto_update=sys.argv[1] == 'up')
例如,一个完整的manage.py可能看起来像这样
#!/usr/bin/env python import sys import os.path import deps # remove '.' from the path (you should use the project package to reference # anything in here) sys.path.pop(0) PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) sys.path.insert(0, os.path.dirname(PROJECT_ROOT)) try: import projectname.settings except ImportError: import sys sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r.\ It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) sys.exit(1) if len(sys.argv) > 1 and sys.argv[1] == 'up': deps.add_all_to_path(projectname.settings, auto_update=True) else: deps.add_all_to_path(projectname.settings, auto_update=False) from django.core.management import execute_manager if __name__ == "__main__": execute_manager(projectname.settings)
现在您可以运行“./manage.py up”来获取依赖项了!
由Caktus咨询集团,LLC赞助开发。
项目详情
关闭
django-dependency-1.1.tar.gz的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 244aa2da30d6fc4dc1d605fedaa14883838c0c580ea0f338aefb8e8fb1681848 |
|
MD5 | d81017b33ee3e314de650b9438062814 |
|
BLAKE2b-256 | 81a0c36e5e7a01949ae6cc08efa156acab0b6c1a3126d421f1271d672029de38 |