Python3开发过程常见的异常(最近更新:2019-04-26)
持续更新中...
- 常见异常解决方案
- 1.Base
- 1.1.IndentationError: unexpected indent
- 1.2.TypeError: str returned non-string (type NoneType)
- 1.3.TypeError: 'list' object is not callable
- 1.4.xxx() missing 1 required positional argument: 'self'
- 1.5.'module' object is not callable
- 1.6.AttributeError:
__enter__ - 1.7.'gbk' codec can't decode byte 0xff in position 3451: illegal multibyte sequence
- 1.8.RuntimeError: Queue objects should only be shared between processes through inheritance
- 1.9.OSError: [Errno 98] Address already in use
- 1.10.Win下端口占用问题:OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试
- 1.11.Win下Python包不能安装的说明
- 网站
- PYPI
- 2.Web
- 3.Spider
- Python常见异常汇总
- 1.Base
常见异常解决方案
1.Base
Python3.7环境相关:https://www.cnblogs.com/dotnetcrazy/p/9095793.html
1.1.IndentationError: unexpected indent
===>检查一下缩进,可以借用yapf或者pycodestyle来帮忙
可以参考这篇文章的末尾:https://www.cnblogs.com/dotnetcrazy/p/9095793.html
1.2.TypeError: str returned non-string (type NoneType)
==> def str(self) 里面没有return返回值

1.3.TypeError: 'list' object is not callable
==>'list'对象不可调用,一般都是用户自定变量和list重名了

原因:

1.4.xxx() missing 1 required positional argument: 'self'
==>装饰实例方法的时候容易出现莫名其妙的错误,所以一般加上get方法,来个案例:
import types
from functools import wraps
class Log(object):
def __init__(self, func):
wraps(func)(self) # @wraps(func) 访问不到,所以用这种方式
self.__func = func
def __call__(self, *args, **kvs):
print("%s log_info..." % self.__func.__name__)
return self.__func(*args, **kvs)
# 装饰实例方法的时候容易出现莫名其妙的错误,所以一般加上get方法
# eg:show() missing 1 required positional argument: 'self'
def __get__(self, instance, cls):
if instance is None:
return self
else:
return types.MethodType(self, instance)
class LoginComponent(object):
def __init__(self, name):
self.__name = name
@Log
def show(self):
"""实例方法"""
print("欢迎你:%s" % self.__name)
@classmethod
@Log # 写在下面("从下往上装,从上往下拆")
def login_in(cls):
"""类方法"""
print("登录ing")
@staticmethod
@Log
def show_news():
"""静态方法"""
print("今天的新闻是...")
def main():
LoginComponent.login_in()
LoginComponent.show_news()
login = LoginComponent("小明")
login.show()
if __name__ == '__main__':
main()
1.5.'module' object is not callable
eg:TypeError: 'module' object is not callable
原因:命令不规范,或者你导入的模块当做类来使用了
比如今天写demo的时候,随手创建了个文件名:mmap.py
import mmap
fd = os.open("mmap_file", os.O_RDWR) # 读+写
m = mmap.mmap(fd, 0) # 创建映射
导入的模块也是mmap,那问题就来了~所以,就算随手测试也是要命名规范的-_-#
1.6.AttributeError: __enter__
一般都是上下文管理器with xxx as x:的问题,看看是否不能托管的进行了托管,或者自定义上下文管理器__enter__ 方法有问题
1.7.'gbk' codec can't decode byte 0xff in position 3451: illegal multibyte sequence
一般都是编码问题,Linux一切正常,win下面出现了糟心事
解决:
指定编码:头文件包含# _*_ coding:utf-8 _*_ and 指定编码格式 encoding="utf-8"
还出现错误就忽略吧:errors='ignore' eg:with open("bai.csv","r",errors='ignore') as f:
1.8.RuntimeError: Queue objects should only be shared between processes through inheritance
队列对象只能通过继承进程之间共享,因为用到了Pool,multiprocessing.Queue()会有点问题,换为multiprocessing.Manager().Queue()即可
https://www.cnblogs.com/dotnetcrazy/p/9426279.html#扩展补充
1.9.OSError: [Errno 98] Address already in use
具体可以查看此文章:https://www.cnblogs.com/dotnetcrazy/p/10003762.html
1.10.Win下端口占用问题:OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试
https://www.cnblogs.com/dotnetcrazy/p/10093178.html
1.11.Win下Python包不能安装的说明
网站
Win下Py包安装出错就去这个网站下对应包:https://www.lfd.uci.edu/~gohlke/pythonlibs/
然后 pip install xxx

PYPI
去PyPI搜索包,然后左侧菜单栏有下载链接

之后pip install xxx 即可
2.Web
2.1.Django
1.django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决:https://www.cnblogs.com/dotnetcrazy/p/10779304.html

3.Spider
3.1.通用
'gbk' codec can't encode character '\xa0' in position 34: illegal multibyte sequence
https://www.cnblogs.com/dotnetcrazy/p/10803209.html
Python常见异常汇总
有些异常官方没有写进去,我补了一些常用的异常:https://docs.python.org/3/library/exceptions.html
BaseException
SystemExit:sys.exit()引发的异常(目的:让Python解释器退出)KeyboardInterrupt:用户Ctrl+C终止程序引发的异常GeneratorExit:生成器或者协程关闭的时候产生的异常(特别注意)Exception:所有内置异常(非系统退出)或者用户定义异常的基类asyncio.Errorasyncio.CancelledErrorasyncio.TimeoutError:和Exception.OSError.TimeoutError区分开asyncio.InvalidStateError:Task/Future内部状态无效引发
asyncio.LimitOverrunError:超出缓冲区引发的异常StopIteration:next()、send()引发的异常:https://www.cnblogs.com/dotnetcrazy/p/9278573.html#6.Python迭代器
StopAsyncIteration:__anext__()引发的异常- ArithmeticError
- FloatingPointError
- OverflowError
- ZeroDivisionError
AssertionError:当断言assert语句失败时引发AttributeError:当属性引用或赋值失败时引发- BufferError
EOFErrorasyncio.IncompleteReadError:读取操作未完成引发的错误
- ImportError
- ModuleNotFoundError
- LookupError
- IndexError
- KeyError
- MemoryError
- NameError
- UnboundLocalError
OSError:当系统函数返回与系统相关的错误时引发- BlockingIOError
- ChildProcessError
- ConnectionError
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- FileExistsError
- FileNotFoundError
- InterruptedError
- IsADirectoryError
- NotADirectoryError
- PermissionError
- ProcessLookupError
TimeoutError:系统函数执行超时时触发
ReferenceError:引用错误(对象被资源回收或者删除了)RuntimeError:出错了,但是检测不到错误类别时触发NotImplementedError:为实现报错(比如调用了某个不存在的子类方法)RecursionError:递归程度太深引发的异常asyncio.SendfileNotAvailableError:系统调用不适用于给定的套接字或文件类型
SyntaxError:语法错误时引发(粘贴代码经常遇到)IndentationError:缩进有问题TabError:当缩进包含不一致的制表符和空格使用时引发
- SystemError
- TypeError:类型错误
- ValueError
- UnicodeError
- UnicodeDecodeError
- UnicodeEncodeError
- UnicodeTranslateError
- Warning
- DeprecationWarning
- PendingDeprecationWarning
- RuntimeWarning
- SyntaxWarning
- UserWarning
- FutureWarning
- ImportWarning
- UnicodeWarning
- BytesWarning
- ResourceWarning
Python3开发过程常见的异常(最近更新:2019-04-26)的更多相关文章
- PowerBI更新2019/04 - 解决方案架构 - PowerBI Solution Architecture(一图胜万字!)
Power BI 架构图 (2019/04) 1) Power BI Desktop 是一个免费的工具.它可以用来准备和管理数据模型:包括链接各种数据:做数据清洗:定义关系:定义度量值和层级关系:应用 ...
- 2019.04.26 mongaodb
打开服务 mongod.exe --dbpath E:\Develop\mongodb_64\data\db 在安装和打开服务之前要建一个db 文件的存储位置 然后打开服务 打开服务之后 打开图 ...
- 常见 Java 异常解释(恶搞版)
常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...
- python3 字典常见用法总结
python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ...
- 【译】常见 Java 异常解释(恶搞版)
常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...
- java中常见的异常种类
Java常见的异常种类 ------------------------------------------------------------------------------- java Exc ...
- 总结Selenium自动化测试方法(六)常见的异常错误处理
六.常见的异常错误处理 NoSuchElementException: Message: Unable to locate element: {"method":"xpa ...
- java项目中常见的异常及处理
Java开发中常见异常及处理方法 1.JAVA异常 异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API ...
- Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED”
Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED” 一.问题 Python2.7.9 之后,当使用urllib.urlopen打开一个 ht ...
随机推荐
- IDEA 安装配置可视化 MongDB 插件
IDEA 安装配置可视化 MongDB 插件 1.安装MongoDB插件 打开 IDEA ,file --> settings --> plugins,在右边搜索栏中输入Mongo,点击 ...
- MySQL索引初探
一.什么是索引? 帮助数据库系统实现高效获取数据的数据结构 索引可以帮助我们快速地定位到数据而不需要每次搜索的时候都遍历数据库中的每一行. 二.常见实现方式有哪些? 常见索引模型有三种:哈希表.有序数 ...
- asp.net webapi 的Request如何获取参数
public class BaseApiController : ApiController { private HttpRequestBase _request; /// 全局Requests对象 ...
- 为什么CynosDB叫真正的云原生数据库?
本文由腾讯云数据库发表 注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录.随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务厂商之一的腾讯云 ...
- mysql8.0绿色版安装及mysqldump备份
1.下载mysql绿色版压缩包https://dev.mysql.com/downloads/mysql/ 2.解压到安装目录后,在根目录创建data文件夹 3.把mysql下的bin目录添加到环境变 ...
- 解决vs2017不能添加引用问题
c# 添加引用时报错:“未能正确加载“ReferenceManagerPackage”包”的解决方法 在添加应用的时候,右键点击“引用”,选择“添加引用”后,会提示“**未能正确加载Reference ...
- Web Storage:浏览器端数据储存机制
目录 概述 操作方法 存入/读取数据 清除数据 遍历操作 storage事件 参考链接 概述 这个API的作用是,使得网页可以在浏览器端储存数据.它分成两类:sessionStorage和localS ...
- 初窥css---包含一些概念和一些文字样式
初窥css CSS相关概念 全称是层叠式样式表.规定了html在网页上的显示样式.我们都知道css主要是负责装饰页面的,但是其实在HTML4之前,网页的样式与架构全部都是写在一起的,也是在HTML4之 ...
- JavaScript 最终将在编程语言中占统治地位?
JavaScript 最终将在编程语言中占统治地位? JavaScript 现在是大多数开发者都会使用的编程语言.网络效应会推动它成为有史以来第一个真正占统治地位的编程语言吗? 大约十年前,编程的方式 ...
- Shell中数组的使用
数组是一个很有用的数据结构,经常使用的功能有初始化,遍历,查找,获取数组长度等操作 一.初始化 小括号中使用空格分开的数据结构就是一个数组,也可使用下标添加元素 arr=(1 'nice' '2day ...