【问题标题】:importing from a django 1.4 project从 django 1.4 项目导入
【发布时间】:2013-08-18 17:46:46
【问题描述】:

我最近遇到了edx 项目并且正在摆弄它。我尝试尝试将其功能导入另一个项目的想法。

这个项目的基本结构是

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')

所以我想知道我错过了项目的哪些 Import 或其他一些因素?或者这对 django 来说根本不可能?

提前感谢您的帮助。

【问题讨论】:

  • 您的问题并不完全清楚您想要尝试做的事情。您已标记您的问题 importerror,但未包含错误回溯或生成它的代码。将目录添加到sys.path 不会自动将它们包含在您的项目中,它只是允许您在该目录中导入模块。如果您是 Django 新手并且不熟悉安装应用程序,您可能会发现使用 vagrant 探索 edx 项目更容易,如其自述文件中所述。
  • 如果信息不充分,抱歉。我试图做的是编写与另一个项目的模型和库交互的视图,在本例中为 edx。所以基本上使 edx 中的函数可以从一个完全不同的项目中调用。我什至不确定这是否可能,因此发布此内容只是为了澄清。
  • 可以包含来自外部项目的应用程序。在这种情况下是否容易取决于各种 edx 应用程序的耦合程度。我对 edx 应用程序不熟悉,所以我不知道它会有多难。祝你好运:)

标签: python django importerror


【解决方案1】:

如果您想直接将应用导入为

import cms
import lms

然后将edx-platform目录添加到路径中

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

将目录添加到sys.path 不会将该目录包含在您的项目中,它只是允许您从该目录导入模块。然后,您必须将所需的模块添加到您的 INSTALLED_APPS 并根据需要导入视图/功能。

【讨论】:

  • 我猜真正的导入不会是edx-platform,因为变量名中不能有-
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2018-01-26
相关资源
最近更新 更多