使用setuptools的可重用Django应用
项目描述
这是另一种使Django能够加载基于egg的可重用、可插入的应用程序的方法,而不需要更改Django源代码。例如,插件或组件,如django-registration、django-threadedcomments或django-tagging。
它使用setuptools来查找、处理和加载具有特定 入口点 的基于egg的Python模块,例如 'django.apps'。
基于egg的Python模块(也称为egg)是类似Django应用的压缩打包Python模块。每个Django应用都可以通过使用特殊的setup.py文件转换为egg发行版。
安装
从应用程序网站获取源代码:
http://code.google.com/p/django-reusableapps/
要安装reusableapps,请按照以下步骤操作
遵循INSTALL文件中的说明。
将import reusableapps添加到您的设置文件的顶部。
在您的设置文件中添加一个新设置,即可重用应用的存储位置列表,按搜索顺序。请注意,即使在Windows上,这些路径也应使用Unix样式的正斜杠。
例如
REUSABLE_APPS_DIRS = ( '/home/jannis/.local', '/Users/Jannis/Code/eggs', '/usr/share/django/apps', 'C:/www/django/apps', )
添加到您的设置文件的最后一行(在INSTALLED_APPS和REUSABLE_APPS_DIRS设置之后)
INSTALLED_APPS = reusableapps.search(REUSABLE_APPS_DIRS, INSTALLED_APPS)
组合在一起
一旦完成上述安装说明,您的设置文件应该看起来像这样
import reusableapps # ... REUSABLE_APPS_DIRS = ( '/home/jannis/.local', '/Users/Jannis/Code/eggs', '/usr/share/django/apps', 'C:/www/django/apps', ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'myproject.myapp', ) INSTALLED_APPS = reusableapps.search(REUSABLE_APPS_DIRS, INSTALLED_APPS)
您可以将可重用、可插拔、基于egg的Django应用放入REUSABLE_APPS_DIRS
目录之一。
使用基于egg的Django应用的模板
如果您想使用基于egg的Django应用的模板,请在TEMPLATE_LOADERS
设置中添加'django.template.loaders.eggs.load_template_source'
。
将django-reusableapps支持添加到您的Django应用
如果您想在您的Django应用中支持django-reusableapps,您需要修改现有的setup.py,改为从setuptools导入setup函数,而不是从distutils导入。
from setuptools import setup
此外,您还需要在setup关键字中添加一个“入口点”。
entry_points={'django.apps': 'myapp = myapp'},
其中我的myapp
是您的Django应用名称,例如registration
。完整的示例可以在setup-example.py中找到,应该将其复制到您应用的父目录中作为setup.py
。然后您就可以创建一个包含此应用的egg文件了。
创建可重用Django应用的egg文件
一旦您在Django应用的父目录中有了正确的setup.py,您可以运行以下命令来构建egg文件:
python setup.py bdist_egg
它将被创建在dist
目录中,文件名类似于dummyapp-0.1-py2.5.egg
。然后您可以将其分发并放置在Django项目的REUSABLE_APPS_DIRS
之一中以使用它。
支持
请将您的问题和问题留在指定的Google Code网站上。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。