【Python2转换升级Python3异常错误更改】(一)

目录

1.ModuleNotFoundError: No module named '_ctypes'

2.ModuleNotFoundError: No module named 'jinja2'

3.ModuleNotFoundError: No module named 'jwt'

4.ModuleNotFoundError: No module named 'pymysql'

5.ImportError: cannot import name 'string_concat' from 'django.utils.translation'

6.ModuleNotFoundError: No module named 'Queue'

7.ImportError: cannot import name 'SortedDict' from 'django.utils.datastructures' 

8.ModuleNotFoundError: No module named 'whoosh'

9.ModuleNotFoundError: No module named 'django.utils.importlib'

10.ImportError: cannot import name 'smart_unicode' from 'django.utils.encoding'


1.ModuleNotFoundError: No module named '_ctypes'

解决: 
yum install libffi-devel -y
重新配置编译安装python后解决

2.ModuleNotFoundError: No module named 'jinja2'

解决:
pip3 install jinjia2 -i https://pypi.tuna.tsinghua.edu.cn/simple 

3.ModuleNotFoundError: No module named 'jwt'

解决:
pip3 install jwt

4.ModuleNotFoundError: No module named 'pymysql'

解决:
pip3 install pymysql

5.ImportError: cannot import name 'string_concat' from 'django.utils.translation'

解决:
使用 ''.join()替换代码 删除string_concat导入信息

6.ModuleNotFoundError: No module named 'Queue'

解决:
python3 不兼容Queue 而是queue。使用如下语句可同时兼容
 import sys
 if sys.version > '':
     import queue as Queue
 else:
     import Queue

7.ImportError: cannot import name 'SortedDict' from 'django.utils.datastructures' 

解决:
SortedDict Python3不存在
将from django.utils.datastructures import SortedDict 改为
from collections import OrderedDict
​
原本的SortedDict中的数据为dict的直接加⭐
原本的数据SortedDict里为列表的改OrderedDict 为 dict后加⭐
原本的数据里返回SortedDict的要看返回的函数,给函数的参数提前加⭐排序后传参
​
⭐OrderedDict(sorted(test_dict.items(), key=lambda obj: obj[0]))

8.ModuleNotFoundError: No module named 'whoosh'

解决:
pip3 install whoosh

9.ModuleNotFoundError: No module named 'django.utils.importlib'

解决:
Django版本升级更换语法
try:
    # Django versions >= 1.9
    from django.utils.module_loading import import_module
except ImportError:
    # Django versions < 1.9
    from django.utils.importlib import import_module

10.ImportError: cannot import name 'smart_unicode' from 'django.utils.encoding'

解决:
python3中没有unicode 
更换别名 smart_unicode 为 smart_text 

你可能感兴趣的:(Python2升版,django,python,后端)