Django ImportError в / независимо от того, что я делаю - PullRequest
3 голосов
/ 16 июня 2009

Итак, я только что начал играть с Django и решил попробовать его на своем сервере. Поэтому я установил Django и создал новый проект, следуя основам, изложенным в руководстве на Djangoproject.com

К сожалению, независимо от того, что я делаю, я не могу заставить работать представления: я постоянно получаю

ImportError at /

No module named index

Здесь - скриншот этой ошибки

Я безуспешно гуглял и пробовал различные команды, и я буквально собираюсь рвать на себе волосы, пока не стану лысым. Я попытался добавить исходный каталог django, каталог моего проекта и каталог приложения в PYTHONPATH, но безуспешно. Я также удостоверился, что init .py находится во всех каталогах (и проект, и приложение). Кто-нибудь имеет какие-либо идеи относительно того, что здесь может пойти не так?

ОБНОВЛЕНИЕ

Извините, я побывал в спешке, опубликовав это, вот некоторый контекст:

Сервер, который я пробовал - это просто встроенный сервер django, использующий manage.py (python manage.py 0.0.0.0:8000, так как мне нужен внешний доступ к нему) в linux (debian)

AppDir / views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Sup")

def test(request):
    return HttpRespons("heyo")

urls.py

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^****/', include('****.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
    (r'^test/', include('mecore.views.test')),
    (r'^', include('mecore.views.index'))
)

Ответы [ 3 ]

12 голосов
/ 16 июня 2009

Ваш urls.py неправ; вам следует прочитать это и это .

Вы не включаете функцию; Вы включаете модуль. Вы называете функцию, mecore.views.index. Вы включаете только целые модули include('mecore.views').

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^****/', include('****.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
    (r'^test/', 'mecore.views.test'),
    (r'^', 'mecore.views.index')
)
3 голосов
/ 16 июня 2009

Есть ли у вас __init__.py в каждом из каталогов mecore и views, а также index.py в представлениях?

Каталог - это пакет, с точки зрения Python, только если он имеет файл с именем __init__.py (он может быть пустым, если вам не нужно выполнять какой-либо специальный код при импорте этого пакета, но он должен быть там).

Редактировать: обратите внимание, что в include вы должны указать путь к Python для модуля, а не для функции: см. Соответствующие документы Django - судя по вашему комментарию, вы неправильно используете include, как я вижу, @ S.Lott предположил в своем ответе.

0 голосов
/ 01 октября 2016

С ImportError Нет модуля с именованными представлениями :

Попробуйте переместить views.py во "внутренний" каталог mysite. Представления являются частью приложения, поэтому необходимо перемещать их в каталог приложения (а не в каталог проекта).

Полученное сообщение об ошибке указывает на то, что mysite (приложение) не имеет views.py модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...