报错:ImportError: cannot import name‘soft_unicode‘from‘markupsafe‘
解决方法:
在 terminal 中运行:
pip3 install –force-reinstall MarkupSafe==2.0.1
python3.8 使用 scikit-learn0.20.2 时报错 TypeError: an integer is required (got type bytes)
【sklearn 版本 0.20】在报错信息中找到图示中文 cloudpickle 所在目录。打开对应文件后切换到 148 行左右
未修改的代码长这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <pre>def inner(value): lambda: cell # make ``cell`` a closure so that we get a STORE_DEREF cell = value co = inner.__code__ # NOTE: we are marking the cell variable as a free variable intentionally # so that we simulate an inner function instead of the outer function. This # is what gives us the ``nonlocal`` behavior in a Python 2 compatible way. if not PY3: return types.CodeType( co.co_argcount, co.co_nlocals, co.co_stacksize, co.co_flags, co.co_code, co.co_consts, co.co_names, co.co_varnames, co.co_filename, co.co_name, co.co_firstlineno, co.co_lnotab, co.co_cellvars, # this is the trickery (), ) else: return types.CodeType( co.co_argcount, co.co_kwonlyargcount, co.co_nlocals, co.co_stacksize, co.co_flags, co.co_code, co.co_consts, co.co_names, co.co_varnames, co.co_filename, co.co_name, co.co_firstlineno, co.co_lnotab, co.co_cellvars, # this is the trickery (), )</pre> |
在 else: 后面开始修改,改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | args = [ co.co_argcount, co.co_kwonlyargcount, co.co_nlocals, co.co_stacksize, co.co_flags, co.co_code, co.co_consts, co.co_names, co.co_varnames, co.co_filename, co.co_name, co.co_firstlineno, co.co_lnotab, co.co_cellvars, # this is the trickery (), ] if sys.version_info >= (3, 8, 0): args.insert(2, 0) new_code = types.CodeType(*args) return new_code |