python2 => python3 踩坑集合

时间:2022-04-18 11:13:57
  1. 报错内容:

    ModuleNotFoundError: No module named 'md5'

    解析:

    这是 python2 的库,python3 已经把它包含进 hashlib 库里了

    解决方法

    直接把对 md5 库的引用语句注释掉,改为引用 hashlib 库

  2. 报错内容:

    AttributeError: module 'sys' has no attribute 'setdefaultencoding'

    解析:

    python2 的默认字符编码为 ASCII 编码,所以有 setdefaultencoding 这个方法转换为 utf-8 编码,而 python3 的默认字符编码是 unicode 编码,这种编码本身支持汉字,所以就不存在上述方法了

    解决方法

    直接把该语句注释掉

  3. 报错内容:

    ModuleNotFoundError: No module named 'urlparse'

    解析:

    urlparse 是python2 的库,python3已经把这个库重命名为 urllib.parse 了

    解决方法

    把对 urlparse 库的引用语句注释掉,改为引用 urllib.parse 库

  4. 报错内容:

    ModuleNotFoundError: No module named 'urlparse'

    解析:

    urlparse 是python2 的库,python3已经把这个库重命名为 urllib.parse 了

    解决方法

    把对 urlparse 库的引用语句注释掉,改为引用 multiprocessing 库里了

  5. 报错内容:

    ModuleNotFoundError: No module named 'Queue'

    解析:

    Queue 是python2 的库,python3已经把这个库加到 multiprocessing 里了

    解决方法

    把对 Queue 库的引用语句注释掉,改为引用 from multiprocessing import Queue