2013-08-18 3 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') 

Так что мне интересно, что такое Импорт или какой-либо другой фактор, связанный с проектом, я пропустил? Или это вообще не возможно с джанго?

Заранее благодарим за любую помощь.

+0

Не совсем ясно, что ваш вопрос хочет, чтобы вы пытались это сделать. Вы отметили свой вопрос importerror, но не включили ни трассировку ошибки, ни код, который ее производит. Добавление каталогов в 'sys.path' автоматически не включает их в ваш проект, а просто позволяет вам импортировать модули в этот каталог. Если вы новичок в Django и не знакомы с установкой приложений, вам может быть проще изучить проект edx с использованием бродяг, как описано в его readme. – 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