【问题标题】:django not finding appdjango 找不到应用
【发布时间】:2012-06-15 15:38:20
【问题描述】:

我在 django 中遇到导入错误。我的主要 urls.py 设置文件位于 main/main/urls.py 我的模块或应用程序位于此处 main/apps/builder/urls.py

回溯错误

ImportError at /
No module named apps.builder.urls
Request Method: GET
Request URL:    ***************
Django Version: 1.4
Exception Type: ImportError
Exception Value:    
No module named apps.builder.urls
Exception Location: /usr/lib/python2.6/site-packages/django/utils/importlib.py in     import_module, line 35
Python Executable:  /usr/bin/python26
Python Version: 2.6.0
Python Path:    
['/home/pycode/main',
 '/usr/lib/python26.zip',
 '/usr/lib/python2.6',
 '/usr/lib/python2.6/plat-linux2',
 '/usr/lib/python2.6/lib-tk',
 '/usr/lib/python2.6/lib-old',
 '/usr/lib/python2.6/lib-dynload',
 '/usr/lib/python2.6/site-packages']
Server time:    Tue, 12 Jun 2012 12:39:17 -0500

main/main/urls.py

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    url(r'^$', include('main.apps.builder.urls')),
)

【问题讨论】:

  • 只用 'apps.builder.urls' 或 'main.main.apps.builder.urls' 试试看,我想这与您布置应用程序的方式有关。还要确保所有文件夹中都有 init.py

标签: python django


【解决方案1】:

您的apps 模块必须低于main/main,否则您必须确保您的apps 文件夹在您的sys.path 中,最好设置PYTHONPATH。

【讨论】:

  • 我可以将我的apps 文件夹移动到main/main 并将我的urls.py 更改为url(r'^$', include('apps.builder.urls')),
  • 或者每次你运行你的服务器时你都可以sudo PYTHONPATH=<yourpath> python manage.py runserver
【解决方案2】:

您是否将其添加到您的 settings.py 文件中的INSTALLED_APPS

https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps

正如 ramdaz 建议的那样,每个目录都需要一个 __init__.py 文件,即使它是空的。

【讨论】:

  • 是的,我将它作为apps.builder添加到main/main/settings.py中已安装的应用程序中,是的,我所有的目录都有__init__.py
猜你喜欢
  • 2015-04-04
  • 2016-09-11
  • 2016-11-22
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2017-01-25
  • 2017-05-25
  • 2023-03-07
相关资源
最近更新 更多