Django:没有名为'app'的模块

9 投票
2 回答
24678 浏览
提问于 2025-04-17 19:03

Django出现了错误,错误信息是:

ImportError at /store/
No module named store

但是在这里有调试信息,显示了设置内容:

INSTALLED_APPS = 
  ('django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.sites',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'django.contrib.admin',
  'django.contrib.admindocs',
  'store')

Environment:


Request Method: GET
Request URL: http://localhost:8000/

Django Version: 1.4.5
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'store')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/paul/cs462/store/store/views.py" in main
  37.   return redirect(reverse('django.contrib.auth.views.login'))
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
  476.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
  363.         possibilities = self.reverse_dict.getlist(lookup_view)
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
  276.             self._populate()
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  253.                     for name in pattern.reverse_dict:
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
  276.             self._populate()
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  265.                 lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in callback
  216.         self._callback = get_callable(self._callback_str)
File "/usr/lib/python2.7/site-packages/django/utils/functional.py" in wrapper
  27.         result = func(*args)
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in get_callable
  105.                     not module_has_submodule(import_module(parentmod), submod)):
File "/usr/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)

Exception Type: ImportError at /
Exception Value: No module named store

命令行运行得很好(我尝试的内容),但是这个错误在我每个页面上都显示出来。难道在应用里有“store”就意味着这个模块已经被导入了吗??

补充说明:我之前用Django做过很多项目。几个小时前这个功能还正常。store/目录下有一个空的 __init__.py 文件。此外,通过使用打印语句,我发现这个文件被执行了(执行了两次)。 urls.pymodels.py 也被执行了(但 views.py 没有)。我不知道该怎么做才能解决这个错误。

2 个回答

1

感谢保罗·德雷珀的帮助,在我把

re_path('api/(?P<version>(v1|v2))/', include('music.urls'))

改成:

    re_path('api/(?P<version>(v1|v2))/', include('musicservices.music.urls'))

之后,问题就解决了。

15

如果没有版本控制,我根本找不到这个问题。实际上,我花了将近一个小时才找到它。

错误出在 store/urls.py 文件里:

urlpatterns = patterns('store.views',
    url(r'^$', 'main'),
    url(r'^new_delivery_user/$', 'new_delivery_user'),
    ...
    url(r'^event_signal/$', 'store.views.event_signal'), # problem
)

我把最后一个 URL 从项目的 url.py 文件移到了这个特定应用的文件里,并且在每个视图前面用了简写 'store.views'。

它应该是这样显示的:

    url(r'^event_signal/$', 'event_signal'),

撰写回答