2013-08-18 51 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