Python---错误笔记

Python---错误笔记

1. Python编码问题:

我们在编写 Python 脚本时,往往会写上中文注释。但是有时候,当我们运行程序时,却发现如下错误:SyntaxError: Non-ASCII character ‘\xe5‘ in file /home/johnnie/Files/Workspace/python/head_first/chapter2/nester.py on line 7, but no encoding declared;
see http://python.org/dev/peps/pep-0263/ for details.

出现原因:就是中文编码的问题

解决方案:

法1:在文件中开头加入如下:

#!/usr/bin/python  或 者  #!user/bin/env python

#encoding=utf-8

# -*- coding: utf-8 -*-       # 推荐这种方式:可以解决模块间导入中文的问题,建议每次都写上

[注意的是声明的编码必须与文件实际保存时用的编码一致,否则很大几率会出现代码解析异常。

现在的IDE一般会自动处理这种情况,改变声明后同时换成声明的编码保存,但文本编辑器控们

需要小心]

2. Python文件读取时出现的错误:

在运行 read_file.py 程序时,遇到一个错误:need more than 1 value to unpack

出现原因: line.split(":", 1) 这一语句造成的错误

解决方案:我们应该查看我们所要读取的文件是否有末尾有空行,将空行删除即可

read_file 程序代码:

#!/usr/bin/python
#encoding=utf-8
# Filename: read_file.py
# 读取数据

import os

data_path = "/home/johnnie/文档/Workspace/python/data/sketch.txt"

if os.path.exists(data_path):
    data = open(data_path)
    while True:
        for line in data.readlines():
            if len(line) == 0:
                break
            else:
                # 增加一逻辑判断: 查看当前数据行是否包含 ":" 字符,若包含,则分割数据
                # find(): 找出一个字符串中的子串,若没找到,则返回 -1
                # not: 对表达式取反
                if not line.find(":") == -1:
                    try:
                        (role, msg) = line.split(": ", 1)
                        print ("{0} said:{1}").format(role, msg)
                    except ValueError:
                        pass
    data.close()
else: # IOError
    print "The data file is missing!"

3. Python 的 Web 服务器运行 CGI 脚本报 FileNotFound 的错误:

当 Web 服务器运行 CGI 脚本遇到 FileNotFoundError: [Errno 2] No such file or directory 时,不要急,先查看:

1). 是否真的有该 CGI 脚本?

2). 是否给予该脚本可执行权限?

3). 最容易疏忽的一部就是: CGI 脚本的首行必须加上如下代码:

#!/usr/bin/python 或 #!/usr/bin/python3  而不是 #!usr/bin/python  [注意: usr前面还有一个左斜线!!!!]

4. Django 模板中使用 {%url%}标签报错:

在 Django 的模板文件 blog_detail.html 中的 <a> 标签的 href 属性中使用 {% url %} 标签,出现如下错误:arguments ‘()‘ and keyword arguments ‘{}‘ not found.....

源代码片段,根目录下的 urls.py:

urlpatterns = [
		......,
		url(r'^sblog/blog_details/(\d+)', 'sblogs.views.blog_detail'),
	]

blog_details.html:

....
<a href = "{% url 'sblog/blog_details' blog.id %}">....</a>

出现原因:

配置 urls 和 标签的使用有误。首先,对于使用 {% url %} 标签时,推荐使用的是对于每一个 app,都在

该 app 目录下新建一个 urls.py 的文件,对该 app 的 url 进行管理。且应该将 url 定义为如下形式:url(r‘^accounts/logout/$‘, logout_view, name = ‘logout_view‘)

解决方案:

1) 修改根目录下的 urls.py:

urlpatterns = [
	url(r'^admin/', include(admin.site.urls)),
	url(r'^$', 'blog.views.home', name="home"),    

	# 以递归的方式来配置 url: sblog 下配置了一个 urls.py
    url(r'^sblog/', include('sblog.urls')),
]

2) 在 app 下新建 urls.py:

urlpatterns = patterns(('sblog.views'),
	                url(r'^blog_list', "blog_list", name="blog_list"),
		            url(r'^blog_detail/(\d+)', 'blog_detail', name="blog_detail"),
		            )

3) 修改 blog_detail.html 文件:

<a href="{% url 'blog_detail' blog.id %}">{{blog.caption}}</a>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-16 14:36:34

Python---错误笔记的相关文章

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python 学习笔记 6 -- 异常处理

当你的程序中出现某些 异常的 状况的时候,异常就发生了.例如,当你想要读某个文件的时候,而那个文件不存在.或者在程序运行的时候,你不小心把它删除了. 那么如果你是在IDE中运行,一个错误发生,异常会被打引出来,这便是未处理异常:当异常发生时,如果没有代码去关注和处理它,这些异常会传给置在Python中的缺省处理,他会输出一些调试信息并且终止运行.如果是在IDE中,这不是什么大事,但是如果是Python程序运行中的异常,它会导致整个程序终止,对于这些情况可以使用异常来处理. 1.try..exce

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

python自学笔记

python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 循环 6.使用dict和set 6.1 dict 6.2 set 7.函数的使用 7.1函数返回多个值,同时接受多个值 7.2函数参数的默认值 7.3可变参数的函数 7.4可变个数带参数名的入参 7.5参数类型组合 8.关于函数递归 9.python的高级特性 9.1切片 9.2遍历 9.3列表生

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python学习笔记7-函数的多类型传值和冗余参数

python学习笔记7-函数的多类型传值和冗余参数 函数多类型传值 例一,元组传参 In [2]: def fun(x,y):    ...:     return x+y In [4]: print fun(3,5) 8 In [5]: t=(1,2) In [6]: print fun(*t)  注意,这里使用的是*t调用元组t 3 In [7]: print fun(t)   用t,不加*,报错只给了一个参数,需要给2哥参数 --------------------------------

python学习笔记之module &amp;&amp; package

个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, __init__.py可以有两种形式, 一种是直接import多个模块,例如 import fibo import abc 另外一种是 __all__ = ["A","B"] python学习笔记之module && package python的mo

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装