持续更新中...

常见异常解决方案

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

  • SystemExitsys.exit()引发的异常(目的:让Python解释器退出)
  • KeyboardInterrupt:用户Ctrl+C终止程序引发的异常
  • GeneratorExit:生成器或者协程关闭的时候产生的异常(特别注意
  • Exception:所有内置异常(非系统退出)或者用户定义异常的基类
    • asyncio.Error

      • asyncio.CancelledError
      • asyncio.TimeoutError:和Exception.OSError.TimeoutError区分开
      • asyncio.InvalidStateErrorTask/Future内部状态无效引发
    • asyncio.LimitOverrunError:超出缓冲区引发的异常
    • StopIterationnext()、send()引发的异常:
      • https://www.cnblogs.com/dotnetcrazy/p/9278573.html#6.Python迭代器
    • StopAsyncIteration__anext__()引发的异常
    • ArithmeticError
      • FloatingPointError
      • OverflowError
      • ZeroDivisionError
    • AssertionError:当断言assert语句失败时引发
    • AttributeError:当属性引用或赋值失败时引发
    • BufferError
    • EOFError
      • asyncio.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)的更多相关文章

  1. PowerBI更新2019/04 - 解决方案架构 - PowerBI Solution Architecture(一图胜万字!)

    Power BI 架构图 (2019/04) 1) Power BI Desktop 是一个免费的工具.它可以用来准备和管理数据模型:包括链接各种数据:做数据清洗:定义关系:定义度量值和层级关系:应用 ...

  2. 2019.04.26 mongaodb

    打开服务  mongod.exe --dbpath E:\Develop\mongodb_64\data\db 在安装和打开服务之前要建一个db  文件的存储位置 然后打开服务 打开服务之后  打开图 ...

  3. 常见 Java 异常解释(恶搞版)

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...

  4. python3 字典常见用法总结

    python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ...

  5. 【译】常见 Java 异常解释(恶搞版)

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...

  6. java中常见的异常种类

    Java常见的异常种类 ------------------------------------------------------------------------------- java Exc ...

  7. 总结Selenium自动化测试方法(六)常见的异常错误处理

    六.常见的异常错误处理 NoSuchElementException: Message: Unable to locate element: {"method":"xpa ...

  8. java项目中常见的异常及处理

    Java开发中常见异常及处理方法 1.JAVA异常 异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API ...

  9. Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED”

    Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED” 一.问题 Python2.7.9 之后,当使用urllib.urlopen打开一个 ht ...

随机推荐

  1. Python二级-----------程序冲刺2

    1. 编写 Python 程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬ ...

  2. 程序员50题(JS版本)(七)

    程序31:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中 var test=[213,134,134,84,62,11]; const num=33; test.push(num ...

  3. mysql很有用的语句

    1)删除表内所有数据: 再添加数据时,如果设有自动增加的id,那么id也会重置. truncate table 表名; 2)创建结构相同的数据库表 create table 数据库名.新表名 like ...

  4. lock了mutex的线程退出了却没有unlock时会怎么样?

    https://stackoverflow.com/questions/4424193/what-happens-to-mutex-when-the-thread-which-acquired-it- ...

  5. linux查看硬盘占用情况

    Linux命令 : df -hl 使用后文件系统 容量 已用 可用 已用% 挂载点Filesystem Size Used Avail Use% Mounted on/dev/vda1 197G 5. ...

  6. 安卓开发:初识Android Studio

    配置:Android Studio3.2.0,gradle-4.6 ,windows10  一.Android Studio安装 在http://www.android-studio.org/完成下载 ...

  7. TextSwitcher 文本切换器的功能与用法

    TextSwitcher集成了ViewSwitcher, 因此它具有与ViewSwitcher相同的特性:可以在切换View组件时使用动画效果.与ImageSwitcher相似的是,使用TextSwi ...

  8. 扫码下单与ERP客户端锁桌功能FAQ

    一.需求场景:因为目前客户端和平台端有两套数据库,两套数据库通过网络交互信息,且双方都可以发起支付,这种结构容易造成: 1.一笔订单同时支付.一笔订单支付时未按最新订单进行支付,支付多付.支付少付的情 ...

  9. 获取用户IP

    public static string GetIP()        {            string ip;            if (System.Web.HttpContext.Cu ...

  10. go语言打造p2p网络

    传送门: 柏链项目学院 就像1000个人眼中有1000个哈姆雷特一样,每个人眼中的区块链也是不一样的!作为技术人员眼中的区块链就是将各种技术的融合,包括密码学,p2p网络,分布式共识机制以及博弈论等. ...