背景:
在android S vendor开始,non-hlos编译python3.8.2+和python2.7.9+共存才行。
基于此,我升级了系统的python3版本。某一天突然发现meld打不开了。
调查:
ll /usr/bin/python*
lrwxrwxrwx 1 root root 9 4月 16 2018 /usr/bin/python -> python2.7*
lrwxrwxrwx 1 root root 9 4月 16 2018 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 3628976 9月 30 2020 /usr/bin/python2.7*
lrwxrwxrwx 1 root root 33 9月 30 2020 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config*
lrwxrwxrwx 1 root root 16 4月 16 2018 /usr/bin/python2-config -> python2.7-config*
lrwxrwxrwx 1 root root 25 4月 24 2022 /usr/bin/python3 -> /etc/alternatives/python3*
-rwxr-xr-x 2 root root 4526456 3月 11 00:46 /usr/bin/python3.6*
lrwxrwxrwx 1 root root 33 3月 11 00:46 /usr/bin/python3.6-config -> x86_64-linux-gnu-python3.6-config*
-rwxr-xr-x 2 root root 4526456 3月 11 00:46 /usr/bin/python3.6m*
lrwxrwxrwx 1 root root 34 3月 11 00:46 /usr/bin/python3.6m-config -> x86_64-linux-gnu-python3.6m-config*
-rwxr-xr-x 1 root root 5120776 4月 19 2022 /usr/bin/python3.8*
lrwxrwxrwx 1 root root 16 10月 25 2018 /usr/bin/python3-config -> python3.6-config*
lrwxrwxrwx 1 root root 10 2月 8 2021 /usr/bin/python3m -> python3.6m*
lrwxrwxrwx 1 root root 17 10月 25 2018 /usr/bin/python3m-config -> python3.6m-config*
lrwxrwxrwx 1 root root 16 4月 16 2018 /usr/bin/python-config -> python2.7-config*
系统中,存在python2.7,python3.6和python3.8三个版本。目前使用的是python3指向的是python3.8。
#可以切换python3版本
sudo update-alternatives --config python3
试了下将python3切换为python3.6版本,meld又正常打开了。
解决方案:
python3.6可用,python3.8不可用,在运行时将python3指向python3.6即可,或者显式地调用python3.6。
which meld
#/usr/bin/meld
more /usr/bin/meld
看到返回的第一行是#!/usr/bin/python3
那么这里,我们将第一行改为#!/usr/bin/python3.6即可。