我有一些Django项目结构:
PROJECT
--APPS
----Profile
----...
--PLUGINS
----ENDLESS_PAGINATION
----DJANGO_SUBDOMAINS
----...
例如:在ENDLESS_PAGINATION中,models.py文件是导入的:
from endless_pagination import ...
无法完成。
ImportError:没有名为endless_pagination的模块
只有在我有这种结构时它才有效:
PROJECT
--DJANGO_SUBDOMAINS
--ENDLESS_PAGINATION
--APPS
----Profile
----...
但我更喜欢第一个并且不喜欢改变我的插件导入。请帮忙!
答案 0 :(得分:0)
您可以将PLUGINS目录放入PYTHONPATH。
在你的settings.py中添加:
import os, sys
PROJECT_ROOT = os.path.dirname(os.path.dirname(__file__))
sys.path.append(os.path.join(PROJECT_ROOT, 'APPS'))
sys.path.append(os.path.join(PROJECT_ROOT, 'PLUGINS'))
之后,您可以参考应用程序或插件中的模块而无需“应用程序”。或“插件”。前缀。
PROJECT_ROOT布局适用于django 1.4或最新版本,如果您使用的是django 1.3或更低版本,则可能会执行此操作PROJECT_ROOT = os.path.dirname(__file__)
。