Estoy trabajando en una aplicación de Django que albergará un archivo index.html simple:
url.py:
from django.conf.urls import url,include from django.contrib import admin from PyDemo.accounts.views import my_view urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^demo/',my_view) ]vistas.py:
from django.shortcuts import render_to_response from django.template import RequestContext # Create your views here. def my_view(request): return render_to_response('index.html',locals(),context_instance=RequestContext(request))Sin embargo, cuando ejecuto la aplicación, aparece el siguiente error:
return import_module(self.urlconf_name) File "C:\Users\tcssuoy\Desktop\DJANGO\mysite\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 978, in _gcd_import File "<frozen importlib._bootstrap>", line 961, in _find_and_load File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 655, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed File "C:\Users\tcssuoy\workspace\PyDemo\PyDemo\PyDemo\urls.py", line 18, in <module> from PyDemo.accounts.views import my_view ModuleNotFoundError: No module named 'PyDemo.accounts'Parece que el nombre de su proyecto es PyDemo y el nombre del módulo es accounts . Así que intenta usar
from accounts.views import my_viewEs posible que encuentre un error (subrayado con una marca roja) que se deba a su IDE, así que ignórelo y mígrelo. Funcionará
Para cualquier otra persona con este problema que esté migrando de Python 2 a 3, parece ser porque Python 3 es más exigente sobre dónde encontrar módulos. El comentario de @Ranjith Singhu me envió en la dirección correcta. En mi caso tuve que cambiar:
Pitón 2:
from views import MyViewPython 3 (también bien en 2):
from project_name.views import MyView