问题描述
今天遇到在低版本Android用repo sync刷新代码时,报错"ValueError: unsupported pickle protocol: 4"
问题起因
先用python3.6去repo sync安卓11代码,再切换到python2.7去repo sync安卓7代码,出现此类问题
解决方法
删掉文件 ~/.repopickle_.gitconfig
解决思路
网上能查出来这个问题是由python2跟python3的协议不一样引起,
python的pickle模块实现了基本的数据序列和反序列化,但用python2去加载python3独有协议生成的文件会报错
根据报错在相应的脚本中添加日志发现是 ~/.repopickle_.gitconfig 这个文件
删掉后可以正常repo sync刷新代码
参考
python里pickle的详细用法_Pythonpickle模块用法实例
ValueError: unsupported pickle protocol: 3, python2 pickle can not load the file dumped by python 3 pickle?