2009-08-21 58 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" 

在順序