Skip to main content
 首页 » 编程设计

python之Django之没有模块名称 site.urls

2025年05月04日23yxwkf

作为this other SO post shows ,我的 Django 1.4 全局目录结构如下所示:

wsgi/ 
   champis/ 
       settings.py 
       settings_deployment.py 
       urls.py 
   site/ 
       static/ 
           css/ 
               app.css 
       templates/some_app/foo.html 
       __init__.py 
       urls.py 
       views.py 
       models.py 
   manage.py 

项目是champis,应用是site。我的 PYTHONPATH 包括 wsgi 文件夹(根据 Django 标准,它应该以项目命名,即 champis,但在这里我从一个Openshift django-example Git project )。

我的champis.urls:

from django.conf.urls import patterns, include, url 
 
# Uncomment the next two lines to enable the admin: 
# from django.contrib import admin 
admin.autodiscover() 
 
urlpatterns = patterns('', 
    url(r'^champis/', include('site.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

我的 site.urls 模块然后路由到特定页面,但是当尝试在本地访问时,出现错误:

http://127.0.0.1/champis => no module name site.urls 

site 应用出现在我的INSTALLED_APPS 中,我的ROOT_URLCONF 是champis.urls。 你知道为什么吗?即使将 site 文件夹移动到 champis 中也无济于事。

请您参考如下方法:

我最终通过以下方式解决了这个问题:

  • 在项目级别添加 __init__.py
  • 将我的 site 应用程序重命名为 web(应用程序名称似乎与...冲突,但我没有找到)

这是我当前的目录结构:

wsgi/ 
   champis/ 
       settings.py 
       settings_deployment.py 
       urls.py 
   web/                <= changed app name 
       static/ 
           css/ 
               app.css 
       templates/some_app/foo.html 
       __init__.py 
       urls.py 
       views.py 
       models.py 
   manage.py 
   __init__.py         <= added