2009-08-21 28 views
1

我有这奠定了这样一个Django项目...如何驯服的第三方捐款的位置在Django

  • 的myproject
    • 应用
    • 媒体
    • 模板
    • django
    • 注册
    • SORL
    • typogrify

我想将其更改为这个...

  • 的myproject
    • 应用
    • 媒体
    • 模板
    • 站点的DEP
      • Django的
      • 注册
      • SORL
      • typogrify

当我尝试它的 '站点依赖' 各个击破。有没有一种方法来实现这种结构?我试图在没有喜悦的情况下向PYTHONPATH添加网站代码...

回答

1

PYTHONPATH搜索是不一样的

PythonPath "[ '/myproject/site-deps', '/myproject' ] + sys.path" 

前者顺序失败;也许是因为它认为它已经看到了站点,并且再次查看没有意义。

后者顺序有效。

0

确保站点依赖项,django,注册,sorl和typogrify文件都包含__init__.py文件。

0

你是如何导入下站点依赖的包?

稍微偏离主题,以你的问题,但我从来不喜欢Django的“默认”的项目布局,所以我有我的奠定伸出像这样的脚本:

myproject/ 
    apps/ 

    vendor/ 
    vendor/django/ 

    config/__init__.py 
    config/urls.py 
    config/settings/ 
    config/settings/__init__.py 
    config/settings/base.py 
    config/settings/hostname.py 

    templates/ 
    media/ 

    script/manage.py 

所包含manage.py被调整将配置,应用程序和供应商添加到Python路径('myproject'本身不在python路径中),并将config/settings/hostname.py作为设置模块(其中主机名将是计算机的实际主机名)导入。任何第三方应用程序都会进入供应商(例如,django本身),并且此项目的应用程序将进入apps目录。

这有点不合常规,但我喜欢设置。该路径列

PythonPath "[ '/myproject', '/myproject/site-deps' ] + sys.path" 

在顺序