python – Django 1.5.1’ImportError:运行测试时没有名为urls的模块’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django 1.5.1’ImportError:运行测试时没有名为urls的模块’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4253字,纯文字阅读大概需要7分钟。
内容图文
![python – Django 1.5.1’ImportError:运行测试时没有名为urls的模块’](/upload/InfoBanner/zyjiaocheng/732/61594e48057e41988b70ca4fc0a2dca4.jpg)
我已经开始使用Django 1.5进行项目我已经对配置文件应用程序进行了以下网址,视图和测试.
当我浏览localhost:8000 / profiles时它工作得很好
但是,当我为配置文件应用程序./manage.py测试配置文件运行测试时,它失败并出现以下异常
File "<stdlib>/site-packages/django/core/urlresolvers.py", line 342, in RegexURLResolver.urlconf_module
self = <RegexURLResolver 'yoda.urls' (None:None) ^/>
340 return self._urlconf_module
341 except AttributeError:
--> 342 self._urlconf_module = import_module(self.urlconf_name)
343 return self._urlconf_module
344
File "<stdlib>/site-packages/django/utils/importlib.py", line 35, in import_module
name = 'yoda.urls'
package = None
32 break
33 level += 1
34 name = _resolve_name(name[level:], package, level)
---> 35 __import__(name)
36 return sys.modules[name]
ImportError: No module named urls
主urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'', include('profile.urls', namespace='profile')),
url(r'^admin/', include(admin.site.urls)),
)
个人资料应用网址
from django.conf.urls import patterns, url
urlpatterns = patterns('profile.views',
url(r'^u/(?P<username>[\-_\.\w\d]+)/$', view='profile_detail', name='detail'),
url(r'^profiles/$', view='profile_list', name='list'),
)
profile.views
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.db.models.signals import post_save
from profile import signals
from profile.models import User
@login_required
def profile_list(request, template='profiles/profile_list.html'):
""" Profiles list """
return render(request, template, {'profiles': []})
@login_required
def profile_detail(request, username, template='profiles/profile_detail.html'):
""" Profile details """
return render(request, template)
# Connect signals and senders
post_save.connect(signals.user_created, sender=User)
profile.tests
from django.core.urlresolvers import reverse
from django.test import TestCase
from profile.tests.factories import UserFactory
class UrlsTest(TestCase):
""" Testing urls for category application """
def setUp(self):
self.user = UserFactory.build()
def get(self, url, follow=False):
return self.client.get(url, follow=follow)
def test_list_profiles(self):
""" Page with the list of profiles """
self.client.login(username=self.user.username, password='pass')
print(reverse('profile:list'))
res = self.get(reverse('profile:list'))
self.assertTrue(res.status_code, 200)
self.assertTemplateUsed('profile/profile_list.html')
设置
import os
import sys
here = lambda * x: os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), *x))
PROJECT_NAME = 'yoda'
PROJECT_ROOT = here('../..')
root = lambda * x: os.path.abspath(os.path.join(os.path.abspath(PROJECT_ROOT), *x))
sys.path.insert(0, root('yoda'))
sys.path.insert(0, PROJECT_ROOT)
sys.path.insert(0, root('apps'))
...
ROOT_URLCONF = 'yoda.urls'
什么可能导致这样的问题?在具有相同配置和Django 1.4.5的项目中,它工作正常.
调试Django内部
试图调试Django django.core.urlresolvers:263.当ROOT_URLCONF =’yoda.urls’时它失败并显示错误,但我尝试了yoda.yoda.urls并且它有效.我对此问题感到困惑,仍在努力解决.
ipdb> __import__('yoda.yoda.urls')
<module 'yoda' from '/Users/sultan/.virtualenvs/yoda/yoda/__init__.pyc'>
小更新
当它从设置接收ROOT_URLCONF时,我们有以下错误
> /Users/sultan/.virtualenvs/yoda/lib/python2.7/site-packages/django/core/urlresolvers.py(351)url_patterns()
350 def url_patterns(self):
--> 351 patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
352 try:
ipdb> l
346 self._urlconf_module = import_module(self.urlconf_name)
347 return self._urlconf_module
348
349 @property
350 def url_patterns(self):
--> 351 patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
352 try:
353 iter(patterns)
354 except TypeError:
355 raise ImproperlyConfigured("The included urlconf %s doesn't have any patterns in it" % self.urlconf_name)
356 return patterns
ipdb> self.urlconf_module
*** ImportError: No module named urls
解决方法:
如果你在名为yoda的app之外创建了urls.py文件,那么设置
ROOT_URLCONF = 'urls'
如果你在模块中创建urls.py然后设置
ROOT_URLCONF = 'modulename.urls'
试试这个
内容总结
以上是互联网集市为您收集整理的python – Django 1.5.1’ImportError:运行测试时没有名为urls的模块’全部内容,希望文章能够帮你解决python – Django 1.5.1’ImportError:运行测试时没有名为urls的模块’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。