2013-09-19 2 views
1

У меня есть файл Python вот часть рамки Django называется facade.pyЗапуск файла Джанго питона в терминале

from django.conf import settings 
from .gateway import Gateway 

class Facade(object): 


def __init__(self): 
    self.gateway = Gateway(
     settings.password, 
     settings.username, 
     ) 

Я хочу, чтобы проверить этот код в моем окне терминала. Это то, что я пробовал:

within virutal-env 
python 
>>> from my.apps.app.facade import Facade 
>>> object = Facade() 

, но это дает мне ошибку ImportError: Настройки не могут быть импортированы, потому что переменная окружения DJANGO_SETTINGS_MODULE не определено.

Почему?

+0

Какая версия django у вас есть? Где находится этот facade.py внутри рамки ??? – mimoralea

ответ

11

Вы не должны делать это в простой оболочке Python. Запустите оболочку с Django, настроенную с помощью ./manage.py shell, а не только python.

+0

Спасибо, я не знал, что вы можете это сделать. – GrantU

+1

Ты тоже не знал, что должен ...;) –

+0

:) :)))))) - спасибо – GrantU

0

Попробуйте добавить это:

from django.conf import settings 

if not settings.configured: 
    settings.configure() 

Успехов!

1

Поскольку эта функция использует Django, ее недостаточно для запуска в оболочке python. Существует множество вещей, таких как настройки, модели и т. Д., Которые необходимо загрузить для запуска Django-файлов.

Вы не можете получить доступ и запустить проекты django из оболочки python. Django не знает, с каким проектом вы хотите работать.

Вы должны сделать одну из этих вещей:

  1. python manage.py shell
  2. Установить переменную DJANGO_SETTINGS_MODULE среды в вашей ОС mysite.settings
  3. Использование setup_environ в интерпретаторе Python:

    from django.core.management import setup_environ 
    from mysite import settings 
    setup_environ(settings) 
    

Первый является самым простым и лучшим методом. Запустите свой код в оболочке django.

0

Как говорится в сообщении об ошибке, вы должны определить переменные окружения DJANGO_SETTINGS_MODULE:

В оболочке: export DJANGO_SETTINGS_MODULE=settings.module

А затем запустить Python.

Смежные вопросы