2013-08-18 49 views
0

我最近遇到了edx項目,並擺弄它。我試圖玩的東西是將其功能導入另一個項目的想法。從django 1.4項目導入

這個項目的基本結構是運行兩個項目,也有一些共享模塊

edx-platform 
    -cms 
    -lms 
    -common 

一個平臺。

我試着做的是在django 1.5中設置一個不同的項目,並嘗試像this post那樣導入所有項目。

sys.path.append('/home/user/edx_all/edx-platform/cms') 
sys.path.append('/home/user/edx_all/edx-platform/lms') 
sys.path.append('/home/user/edx_all/edx-platform/common') 

所以我想知道什麼導入或其他一些關於該項目的因素我錯過了?或者這與django完全不可能?

在此先感謝您的幫助。

+0

從您的問題中想要嘗試去做並不完全清楚。你已經標記了您的問題importerror,但沒有包含錯誤追溯或生成它的代碼。將目錄添加到'sys.path'不會自動將它們包含在您的項目中,它只是允許您在該目錄中導入模塊。如果您是Django的新手,並且不熟悉安裝應用程序,您可能會發現使用vagrant來瀏覽edx項目會更容易,如其自述文件中所述。 – Alasdair

+0

嘿,對不起,如果信息不足。我試圖做的是編寫視圖,以便與另一個項目的模型和庫進行交互,在這種情況下,edx。所以基本上可以從一個完全不同的項目中調用edx中的函數。我甚至不確定這是否是可能的,因此公佈這只是爲了澄清。 –

+0

可以包含來自外部項目的應用程序。在這種情況下是否容易取決於各種edx應用程序的耦合程度。我不熟悉edx應用程序,所以我不知道它會有多困難。祝你好運:) – Alasdair

回答

0

如果你想直接導入應用程序作爲

import cms 
import lms 

然後添加edx-platform目錄路徑

sys.path.append('/home/user/edx_all/edx-platform/') 

添加目錄sys.path不包括在你的項目的目錄,它只是允許你從該目錄導入模塊。然後您必須將所需的模塊添加到您的INSTALLED_APPS並根據需要導入視圖/功能。

+0

我猜測真正的導入不會是'edx-platform',因爲你不能在變量名中使用'-'! – Ben

+0

@Ben好點,我從我的答案中刪除了該選項。 – Alasdair