玄之又玄,眾妙之門!

CentOS7 Python2 升级 Python3

文章目录
  1. 下载
  2. 编译
  3. 进行链接替换,生效python3.7
  4. yum 的影响

下载

  1. 打开Python3官网:https://www.python.org/

  2. 下拉找到,下图下载位置,点击版本下载:

  3. 复制要安装的Python3下载地址,如:https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz

  4. 命令行执行(在你需要下载的目录)

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

编译

  1. 解压 tar xzvf Python-3.8.2.tgz

  2. cd Python-3.8.2

  3. mkdir /usr/local/python3 #按个人喜好选择目录

  4. python3 这里是一个坑,需要安装ssl的支持

    ./configure --prefix=/usr/local/python3 --with-ssl

    这一步可能遇到的问题:

    zipimport.ZipImportError: can't decompress data; zlib not available

    解决方法:

    yum -y install zlib*

    vi Modules/Setup

    #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 去掉这个注释

    make install 过程中会进行zlib相关的编译

    这一步还可能遇到的问题:

    ModuleNotFoundError: No module named '_ctypes'

    解决方案:

    yum install libffi-devel -y

    make install 过程中会进行 ctypes 的相关编译

  5. 检查一下: ls /usr/local/python3/bin

   2to3  2to3-3.8  easy_install-3.8  idle3  idle3.8  pip3  pip3.8  pydoc3  pydoc3.8  python3  python3.8  python3.8-config  python3-config

要注意的是产生了:python3pip3.8

  1. 查看版本:/usr/local/python3/bin/python3 -V,应该显示 Python 3.8.2

  2. 运行:/usr/local/src/python3/bin/pip3 -V,应显示:

    pip 10.0.1 from /usr/local/src/python3/lib/python3.7/site-packages/pip (python 3.7)

进行链接替换,生效python3.7

  1. 执行 python -V 输出 Python 2.7.5

  2. 查找文件并显示命令路径(which是查找PATH路径下配置的文件) which python

    显示 /usr/bin/python

  3. 执行 pip -V 输出 pip 20.1 from /usr/lib/python2.7/site-packages/pip-20.1-py2.7.egg/pip (python 2.7)

    如显示 -bash: pip: command not found 运行 easy_install pip

  4. 执行 which pip 输出 /usr/bin/pip

  5. 链接替换:

    ln -s /usr/local/python3/bin/python3 /usr/bin/python -f
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip -f
  6. 检查执行:python -V 应显示 Python 3.8.2

  7. 执行:pip -V

    显示pip 19.2.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)

  8. 补充

    还需要补充一个 easy_install 的指向,要知道这个也是有版本区别的,在后续我们使用python3的时候,可能还需要用到,因此就需要进行链接切换:

    ln -s /usr/local/python3/bin/easy_install /usr/bin/easy_install -f

    实际上熟悉linux的同学知道这仅仅就是环境变量的切换,

    只是上面采用了覆盖python2的默认文件来实现这个python/pip/easy_install指向python3

    方法很多,例如将/usr/local/src/python3/bin的路径放在PATH的最前面,等等。

    结果一样,就看自己要怎么使用了。

yum 的影响

yum的脚本是基于python2.x的,因此,这里将系统变量进行了python3的修改,那么就应该对yum的脚本做python2.x的指定

vm /usr/bin/yum

#!/usr/bin/python2.7

除了yum脚本以外,还有:

vi /usr/libexec/urlgrabber-ext-down

同样是进行指定`python2.7

赞(0)
未经允许不得转载:技术好学屋 » CentOS7 Python2 升级 Python3
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址