ubuntu下repo遇到的环境问题:python2不支持问题解决

项目场景:

在学习韦东山Linux嵌入式开发过程中,使用repo获取内核及工具链

book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git

book@100ask:~$ mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk

book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo init -u \

 https://gitee.com/weidongshan/manifests.git -b \

linux-sdk -m imx6ull/100ask_imx6ull_linux4.9.88_release.xml  --no-repo-verify

book@100ask:~/100ask_imx6ull-sdk$  ../repo/repo sync -j4


问题描述

repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -b 3.8.0

repo初始化工程时遇到python2不支持repo以及python库中没有模块requests的问题

bug提示:

repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.

No module named requests


原因分析:

repo脚本和repo init时指定的repo仓库脚本所适用的python版本不匹配的问题。例如你下载的repo脚本需要python2.7版本解释器来运行,而repo init时指定的repo仓库里的脚本需要python3.6版本解释器,那在repo init运行的时候肯定会出问题。在我实践中看来,python的高版本并不能很好的兼容python低版本。
————————————————
原文链接:https://blog.csdn.net/In_engineer/article/details/122488032

大白话:Ubuntu系统预安装了python2.7和python3.5,系统中软链接python->python2.7,执行repo init,系统发现2.7版本过低,且未安装requests模块


解决方案:

尝试一:把repo版本限制调低

步骤1:找到repo文件夹,打开repo文件,我的repo文件夹在家目录

# vim ~/repo/repo

步骤2:找到以下代码

def check_python_version():
  """Make sure the active Python version is recent enough."""
  def reexec(prog):
    exec_command([prog] + sys.argv)

  MIN_PYTHON_VERSION = (3, 6)

  ver = sys.version_info
  major = ver.major
  minor = ver.minor

MIN_PYTHON_VERSION定义python版本,把MIN_PYTHON_VERSION = (3, 6)改为MIN_PYTHON_VERSION = (2, 7)即可

原文链接:https://www.csdn.net/tags/MtjaIg3sMDQzODctYmxvZwO0O0OO0O0O.html

结果:第一条bug不会出现了,但是下载requests模块时遇到问题,似乎python2不支持这个模块,更新pip也不管用

尝试二:安装python3.6 

首先查看版本号:

# python -V        或者    #python --virsion

Python 2.6.6

下载新版python:

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

解压缩:

下载完成之后,进行解压缩:# tar -zxvf Python-3.6.2.tgz

进入解压缩后的目录,安装配置:

# cd Python-3.6.2/

# ./configure

执行 ./configure 时,如果报错:configure: error: no acceptable C compiler found in $PATH

说明没有安装合适的编译器。

这时,需要安装/升级 gcc 及其它依赖包:# yum install make gcc gcc-c++

完成之后,重新执行:# ./configure

编译 & 安装

配置完成之后,就可以编译了:# make

编译完成后,安装:# make install

安装成功以后,就可以查看 Python 的版本了:

# python -V

Python 2.6.6

# python3 -V

Python 3.6.2

一个是旧版本 2.x,另外一个是新版本 3.x。

注意:在 /usr/local/bin/ 下有一个 python3 的链接,指向 bin 目录下的 python 3.6。

查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.6,所以,执行 python 就相当于执行 python 2.6。

设置 3.x 为默认版本:

# ls -al /usr/bin | grep python

-rwxr-xr-x.  1 root root      11216 12月  1 2015 abrt-action-analyze-python

lrwxrwxrwx.  1 root root          7 8月  30 12:11 python -> python2

lrwxrwxrwx.  1 root root          9 8月  30 12:11 python2 -> python2.6

-rwxr-xr-x.  1 root root       7136 11月 20 2015 python2.6

将原来 python 的软链接重命名:

# mv /usr/bin/python /usr/bin/python.bak

将 python 链接至 python3:

# ln -s /usr/local/bin/python3 /usr/bin/python

这时,再查看 Python 的版本:

# python -V

Python 3.6.2

若输出的是 3.x,说明已经使用的是 python3了。

配置 yum

升级 Python 版本之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:

# vi /usr/bin/yum

同时修改:# vi /usr/libexec/urlgrabber-ext-down

将 #!/usr/bin/python 改为 #!/usr/bin/python2.6,:x保存退出即可。

原文链接:linux中如何升级python版本号,linux下升级python版本至3.x_weixin_39632397的博客-CSDN博客

问题结果:环境问题解决,最后升级下pip就可以下载requests模块了。

注意:修改软链接后可能导致yum命令出错,解决链接

https://www.csdn.net/tags/OtDaUg3sMjk0NS1ibG9n.html


附:

Repo介绍_nwpushuai的博客-CSDN博客_repo

linux安装两个python版本_吾爱乐享的博客-CSDN博客_linux安装两个python

ubuntu彻底卸载py2.7_AGANCUDA的博客-CSDN博客_ubuntu卸载python2.7(慎重考虑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值