Как включить приложение Django в мою PYTHONPATH? - PullRequest
4 голосов
/ 23 августа 2010

Я хочу иметь возможность импортировать вещи из приложений в моем проекте, не ссылаясь на имя моего проекта.

Моя структура папок такая;У меня есть проект с именем djangoproject1, и внутри у меня есть папка с приложениями, а затем у меня есть отдельные приложения в этой папке.

djangoproject1, приложения и все мои приложения имеют пустой файл "__init__.py"в них.

В моем файле settings.py у меня есть следующий код:

import os
import sys
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, "apps"))

Я пытался добавить свои приложения в INSTALLED_APPS несколькими способами:

'djangoproject1.apps.app1 ',' djangoproject1.apps.app2 ',

или

' apps.app1 ',' apps.app2 ',

или

'app1', 'app2',

, но ничего не работает.Всякий раз, когда я пытаюсь сделать:

from app1 import *

, я получаю неразрешенную ошибку импорта.Я использую последние версии eclipse и django

Ответы [ 3 ]

1 голос
/ 23 августа 2010

Хорошо, так что я заставил его работать, добавив папку apps в PYTHONPATH через eclipse в Project Properties. Это только затмение? Я не уверен, как это будет работать, когда я пытаюсь развернуть сайт. Что вы, ребята, думаете?

0 голосов
/ 24 августа 2013

Вы должны включить каталог приложений в PYTHONPATH.Убедитесь, что в каталоге приложений нет __init__.py, потому что он стал пакетом, а не «простым каталогом».Затем включите в settings.py

app1, app2, app3

Use

from app1 import *
0 голосов
/ 23 августа 2010

Заявление sys.path.insert(0, os.path.join(PROJECT_ROOT, "apps")) выглядит хорошо для меня. После этого вам нужно только добавить app1 к INSTALLED_APPS и все должно работать. Но, видимо, они не работают.

Попробуйте сделать следующее: 1. Распечатайте sys.path и убедитесь, что каталог app вашего проекта находится в списке. 2. Дважды проверьте, что у вас есть __init__.py внутри вашей папки apps.

Обновление

OK. Теперь вы можете запустить оболочку Django и попробовать импортировать снова? Если не получится, опубликуйте трассировку стека здесь.

...