PY3.8在Pycharm2019内运行Django时,在Python Console报错TypeErr
针对情况:
py3.8,Pycharm2019,Django3.x版本
另外提一句嘴,Django2.X不支持py3.8
解决办法:
找到报错的最后一行,将
code = init.__code__
if PY3:
new_code = types.CodeType(len(varnames),
0,
len(varnames),
code.co_stacksize,
code.co_flags,
code.co_code,
code.co_consts,
code.co_names,
varnames,
code.co_filename,
"__init__",
code.co_firstlineno,
code.co_lnotab,
code.co_freevars,
code.co_cellvars)
elif JYTHON:
from org.python.core import PyBytecode
改成:
code = init.__code__
args = [
len(varnames),
0,
len(varnames),
code.co_stacksize,
code.co_flags,
code.co_code,
code.co_consts,
code.co_names,
varnames,
code.co_filename,
"__init__",
code.co_firstlineno,
code.co_lnotab,
code.co_freevars,
code.co_cellvars
]
if sys.version_info >= (3, 8, 0):
# Python 3.8 and above supports positional-only parameters. The number of such
# parameters is passed to the constructor as the second argument.
args.insert(2, 0)
new_code = types.CodeType(*args)
elif JYTHON:
from org.python.core import PyBytecode
希望不要踩坑… 这东西搞了我好几个小时~~~~