在repo init和repo sync时,需要python3.6+,在编译android源码时,又需要Python2.7,所以需要系统中同时存在Python的2+和3+版本。
(1)安装Python2+版本:
在Ubuntu中会自带,不需要再次安装。
(2)安装Python3.6+版本:
下载Python3+源代码:
Python 官方下载地址:https://www.python.org/downloads/
解压源码包:
$ tar -zxvf Python-3.8.5.tgz
安装编译源码的依赖库:
$ sudo apt-get install zlibc zlib1g-dev
编译:
$ cd Python-3.8.5
$ ./configure --prefix=/usr/local 注:--prefix=/usr/local用于指定安装目录
$ make
$ sudo make install
(3)切换Python2+和Python3+版本:
怎样能快速的切换Python2+和Python3+呢,可以使用如下方式配置:
使用update-alternatives 命令处理 Linux 系统中软件版本的切换,使其多版本共存。
向系统注册python3.8.2:
$ sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 2
向系统注册python2.7:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 10
查看python所有配置:
$ sudo update-alternatives --display python
切换python的配置:
$ sudo update-alternatives --config python
问题1:
当出现 marshal data too short 时,说明当前系统使用的版本号有问题,需要切换版本(使用上面命令即可):
如果切换版本后,再执行repo sync后仍然报错,可以删掉python生成的文件后再重新执行:
rm -rf __pycache__