使用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网站上。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。