1. 程式人生 > >python 2.7.3(ubuntu12.04 default python) 升級到 python 2.7.6 版本的方法

python 2.7.3(ubuntu12.04 default python) 升級到 python 2.7.6 版本的方法

dig ner traceback sha256 read tput inux ubuntu12 mkdir

android 代碼編譯時遇到如下問題需要將 ubuntu 下 python2.7.3 升級到 python 2.7.6 及以上。

[100% 109208/109208] Target vbmeta image: out/target/product/lotus/vbmeta.img
FAILED: out/target/product/lotus/vbmeta.img 
/bin/bash -c "(mkdir -p out/target/product/lotus/obj/avb_chain_keys ) && (out/host/linux-x86/bin/avbtool make_vbmeta_image --include_descriptors_from_image out/target/product/lotus/boot.img --include_descriptors_from_image out/target/product/lotus/system.img --include_descriptors_from_image out/target/product/lotus/vendor.img --include_descriptors_from_image out/target/product/lotus/recovery.img --algorithm SHA256_RSA2048 --key device/xiaomi/lotus/oemprvk.pem --padding_size 4096 --output out/target/product/lotus/vbmeta.img ) && (rm -rf out/target/product/lotus/obj/avb_chain_keys )
" Traceback (most recent call last): File "out/host/linux-x86/bin/avbtool", line 3931, in <module> tool.run(sys.argv) File "out/host/linux-x86/bin/avbtool", line 3797, in run args.func(args) File "out/host/linux-x86/bin/avbtool", line 3825, in make_vbmeta_image args.padding_size) File
"out/host/linux-x86/bin/avbtool", line 2402, in make_vbmeta_image append_to_release_string) File "out/host/linux-x86/bin/avbtool", line 2549, in _generate_vbmeta_blob (_, _, image_descriptors, _) = self._parse_image(image_handler) File "out/host/linux-x86/bin/avbtool", line 2223, in _parse_image descriptors
= parse_descriptors(image.read(h.descriptors_size)) File "out/host/linux-x86/bin/avbtool", line 1731, in parse_descriptors ret.append(c(bytearray(data[o:o + 16 + nb_following]))) File "out/host/linux-x86/bin/avbtool", line 1403, in __init__ digest_len, _) = struct.unpack(self.FORMAT_STRING, data[0:self.SIZE]) struct.error: unpack requires a string argument of length 132 ninja: build stopped: subcommand failed. 13:54:14 ninja failed with: exit status 1 #### failed to build some targets (04:14:02 (hh:mm:ss)) ####

解決方法:

1. 下載並安裝 python 2.7.6

$su root
#cd /usr/local
#wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
#tar -zxvf Python-2.7.6.tgz && cd Python-2.7.6 && ./configure && make all && make install && make clean && make distclean

2. 建立軟連接

#mv /usr/bin/python /usr/bin/python2.7.3  // 備份系統python,萬一出錯可以復原
#ln -s /usr/local/bin/python2.7 /usr/bin/python  // 將新安裝的 python 2.7.6 建立軟連接到 python
#python -V  // 查看現在使用的 python 版本是否符合

3. 此時使用#pip 看是否可用,如可用則 python 已安成功。如報錯:

ImportError: No module named pkg_resources

這是因為 python 升級帶來的問題。

解決方案:

1. 安裝 distribute

#cd /usr/local
#wget https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip --no-check-certificate
#unzip distribute-0.7.3.zip
#cd distribute-0.7.3
#python setup.py install

2. 安裝 setuptool

https://pypi.python.org/pypi/setuptools 下載最新版

#cd setuptools-xxx 
#python setup.py install

3. 安裝 pip

#easy_install pip
#pip -V

顯示 pip 版本,即 pip 可以使用了。

python 2.7.3(ubuntu12.04 default python) 升級到 python 2.7.6 版本的方法