import django 报错错

用户名:zuiwuxin
文章数:11
访问量:9999
注册日期:
阅读量:1297
阅读量:3317
阅读量:456681
阅读量:1141344
51CTO推荐博文
我们在尝试安装调试graphite webapp时,或者使用django制作网站时会遇见此问题。或者类似的问题.File&"/opt/graphite/webapp/graphite/urls.py",&line&15,&in&&module&
&&&&from&django.conf.urls.defaults&import&*ImportError:&No&module&named&defaults原因在于:Django 1.6 时改变了模块结构,原先的defaults模块被去除了。为了解决这一问题你有两种方式。1:回滚到1.5.x版本上2:找到代码问题行,将此行改为from&django.conf.urls&import&patterns,&url,&include相信能解决你的问题如果你是在调试暗转graphite webapp时遇见此问题,下列的Python脚本能够一次性修复所有的有问题的模块.python&scirpte&name:&fixerrorNomodule.py
files&=&["/opt/graphite/webapp/graphite/urls.py",
"/opt/graphite/webapp/graphite/urls.py",
"/opt/graphite/webapp/graphite/render/urls.py",
"/opt/graphite/webapp/graphite/cli/urls.py",
"/opt/graphite/webapp/graphite/composer/urls.py",
"/opt/graphite/webapp/graphite/metrics/urls.py",
"/opt/graphite/webapp/graphite/browser/urls.py",
"/opt/graphite/webapp/graphite/account/urls.py",
"/opt/graphite/webapp/graphite/dashboard/urls.py",
"/opt/graphite/webapp/graphite/whitelist/urls.py",
"/opt/graphite/webapp/graphite/graphlot/urls.py",
"/opt/graphite/webapp/graphite/version/urls.py",
"/opt/graphite/webapp/graphite/events/urls.py"]
files2=&["/opt/graphite/webapp/graphite/urls.py"]
str&=&'from&django.conf.urls.defaults&import&*\n'
for&file&in&files:&
&&&&print&file
&&&&f&=&open(file,&"r+")
&&&&flists&=&f.readlines()
&&&&print&len(flists),
&&&&for&i&in&range(len(flists)):
&&&&&&&&if&flists[i]&==&str:
&&&&&&&&&&&&print&flists[i]
&&&&&&&&&&&&flists[i]&=&"from&django.conf.urls&import&patterns,&url,&include&\n"
&&&&&&&&else:
&&&&&&&&&&&&pass
&&&&f&=&open(file,&"w+")
&&&&f.writelines(flists)
&&&&f.close()本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)调试PyPy运行Django出现的错误:Segmentation fault | the5fire的技术博客
调试PyPy运行Django出现的错误:Segmentation fault
前两天在家研究了下pypy,顺便也搭建了一个基于pypy的virtualenv环境:
,在上篇文章最后说到在用django处理mysql数据库的时候会出现这个错误,然后崩溃:Segmentation fault (core dumped)。经过这两天使用pdb进行一步步debug,终于发现问题所在了。
从一个 python manage.py sql blog 开始,阅读了大部分的 django.db.backends.mysql 的代码,稍带着也看了MySQLdb库的一些代码,终于最后找到了问题所在。
在这个过程中,不断的对比Django中的cursor和正常情况下直接用MySQL代码创建的cursor,发现没有太多的区别,Django中的cursor其实是对MySQLdb创建出来的cursor的包装—— CursorWrapper 和 CursorDebugWrapper (位于: django.db.backends.util ) ,其中后面这个CursorDebugWrapper和django_debug_toolbar有很重要的关系,这里面计算了每个连接的执行SQL语句以及每个语句的执行时间。而其他的cursor的操作没有什么特别的地方。
有逻辑的推敲代码还是很重要的,通过短路法不断的尝试,最后终于定位到了是Django在创建一个connection时发生的错误。查错的方法很简单,在pdb下,在Django创建完成一个connection之后,手动创建cursor,然后执行查询,发现直接抛错了。这说明这个connection创建的有问题。(文件位于: django.db.backends.mysql.base 中)
看一下这个connection的创建过程:
# ....省略代码
kwargs = {
'conv': django_conversions,
#'charset': 'utf8',
#'use_unicode': True,
settings_dict = self.settings_dict
if settings_dict['USER']:
kwargs['user'] = settings_dict['USER']
if settings_dict['NAME']:
kwargs['db'] = settings_dict['NAME']
if settings_dict['PASSWORD']:
kwargs['passwd'] = force_str(settings_dict['PASSWORD'])
if settings_dict['HOST'].startswith('/'):
kwargs['unix_socket'] = settings_dict['HOST']
elif settings_dict['HOST']:
kwargs['host'] = settings_dict['HOST']
if settings_dict['PORT']:
kwargs['port'] = int(settings_dict['PORT'])
# We need the number of potentially affected rows after an
# &UPDATE&, not the number of changed rows.
kwargs['client_flag'] = CLIENT.FOUND_ROWS
kwargs.update(settings_dict['OPTIONS'])
t_kwargs = {}
pdb.set_trace()
#self.connection = Database.connect(db='django5',host='127.0.0.1',user='root',passwd='root')
self.connection = Database.connect(**kwargs)
# ... 省略代码
尝试后发现去掉创建链接时 charset和use_unicode的参数创建就能成功。
到此为止问题已经找出来了。至于这俩参数的具体用处,下回再说。
最后补充一句,Django没必要同时设置charset和use_unicode,因为MySQLdb库中有对应的判定:
charset = kwargs2.pop('charset', '')
if charset:
use_unicode = True
use_unicode = False
当然,除非你设置charset后需要设置use_unicode为false:
use_unicode = kwargs2.pop('use_unicode', use_unicode)
----EOF-----
扫码关注,或者搜索微信公众号:码农悟凡
别人正在读
【上一篇】
【下一篇】
Please enable JavaScript to view the
访问手机版
小额赞助博主
觉得此博客对你有帮助,支付宝扫码赞助
其他分类:ALLOWED_HOSTS Django 1.5中把Settings.py的DEBUG改成False就会报错的处理办法 - 为程序员服务
为程序员服务
Django 1.5中把Settings.py的DEBUG改成False就会报错的处理办法
django1.5中加入了这个一个东西,它用来在正式环境中限制访问域名的,如果你是直接从1.4或者更早版本升级而来,是没有这个的,所以只要将DEBUG从True改成False就报错了,可以自己在settings.py里面添加
ALLOWED_HOSTS = ['']
也可以写成
ALLOWED_HOSTS = ['*']
这样就在任何域名下都可以生效了,不过django不推荐这么干
您可能的代码
相关聚客文章
荣誉:1491
相关专栏文章新手学习django,奈何很多东西不了解,报上一堆千奇百怪的错误,以后在实际学习过程中遇到问题将统一把解决办法更新到此博客中,大家共勉--------------------------------------------------------------------------------------------------------------1)No translation file found for domain: u'django'
这个主要是我们把settings.py中LANGUAGE_CODE配置修改了一下,改成 zh-Hans,就好了。。。
2)Invalid block tag: 'endif', expected 'empty' or 'endfor'
这个主要是我们在模板中使用了django不能识别的标记,出现这个问题你就得看看是不是标记写错了。。。。
本文已收录于以下专栏:
相关文章推荐
1、XST - &ERROR:Xst:902 - .v, line xx: Unexpected event in always block sensitivity list.&
解决方法:Re...
Android问题集锦
对于机器学习,很多人的观点是:机器学习技术是今后所有技术人员都绕不过的一个门槛。 那么,普通程序员该学习机器学作为一名对机器学习心有向往的程序员,我该以什么样的姿势开始呢?
Java问题集锦
1.Terminal i falling back to unsupported
在启动Hive时报错:
Terminal initialization fa...
文章转载自:/java//java-programming-tips-best-practices-beginners.html
此文章转载来源于http://www.huwei.tech//Android%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E9%9B%86%E9%94%...
强制写注释
为了以后你能更清晰的看到你所做的每一次更改的原因,你在每次提交的时候应该写上注释,而且尽量详细.如图:
但是,可能有的人因为觉得太繁琐,而不填写注释,这不利于以后的版本控制,可以强制在提...
mycat问题集锦与解决方法
-----转载自 /viewthread.php?tid=63
1. 编译前须关闭项目文件夹下的相关文件。
2. Error: L6218E: Unde...
在使用android studio导入外部项目时经常提示一些错误,现记录于下,并附上自己使用过程中的解决方法!
他的最新文章
讲师:唐宇迪
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)解决django ImportError: Settings cannot be imported错误 - The Dawn. - ITeye博客
博客分类:
转:/fixed-django-settings-error.html
今天在练习django的模板引擎的时候出了这么一个错误
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
root@ubuntu:~# python
Python 2.6.2 (release26-maint, Apr 19 :41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
&&& from django.template import Template
&&& t = Template("my name is {{name}}")
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.6/dist-packages/django/template/__init__.py", line 156, in __init__
if settings.TEMPLATE_DEBUG and origin is None:
File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 38, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
这是因为我在命令行下使用python命令进入交互模式的,Template(str)在构照模板的时候依赖django.conf.settings.这个变量,但是在当前的环境中没有这个变量,这时,它就会抛出异常了
办法就是 要想使用django的模板你必须导入settings
&&& from django.conf import settings
&&& settings.configure()
你在运行t = Template("my name is {{name}}") 就不会出错了
还有一种方法就是使用python manager.py shell运行
root@ubuntu:/home/python/cms# python manage.py shell
Python 2.6.2 (release26-maint, Apr 19 :41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
&&& from django.template import Template,Context
&&& t=Template('my name is {{name}}')
&&& c=Context({'name':'dengmin'})
&&& t.render(c)
u'my name is dengmin'
&&&
这是因为python manager.py shell的时候djano会去查找settings.py,这个文件包含了这个Django实例的所有配置选项
打开这个文件我们可以看到这样的配置
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
&&& 'django.template.loaders.filesystem.Loader',
&&& 'django.template.loaders.app_directories.Loader',
#&&&& 'django.template.loaders.eggs.Loader',
)
这个是django提供的模板加载器
在目录/usr/local/lib/python2.6/dist-packages/django/template/loaders下找到这两个文件
filesystem.py app_directories.py,这两个文件中都导入from django.conf import settings
最后,在使用django的模板时,应该使用python manager.py shell来进入交互模式,这样可以避免很多不必要的麻烦
浏览: 137712 次
来自: 北京
这个程序有bug。}

我要回帖

更多关于 django 中文报错 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信