zoukankan      html  css  js  c++  java
  • python2升级python3

    一、前言:

    每次使用测试开发环境,需要更新linux系统python版本,以及pip版本;
    
    每次更新都要百度、google查询,为此方便自己使用,特此记录笔记;

    二、安装python3

    2.1 下载源代码了

    [XXXXX ~]# python -V
    Python 2.7.5
    [XXXXX ~]# cd /data/source/
    [XXXXX ~]# ls
    apache-tomcat-8.5.14-windows-x64.zip    libevent-2.0.22-stable.tar.gz  pcre-8.33.tar.gz
    jdk-8u11-linux-x64.tar.gz               memcached-1.4.25.tar.gz        redis-3.0.5.tar.gz
    jetty-distribution-8.1.9.v20130131.zip  nginx-1.3.9.tar.gz             zlib-1.2.8.tar.gz
    jetty-distribution-9.3.6.v20151106.zip  openssl-1.0.1e.tar.gz
    
    [XXXXX source]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz    #### 连接失效,请自行掠食官网最新地址
    --2018-10-01 10:09:20--  https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    Resolving www.python.org (www.python.org)... 151.101.72.223, 2a04:4e42:1a::223
    Connecting to www.python.org (www.python.org)|151.101.72.223|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 22745726 (22M) [application/octet-stream]
    Saving to: ‘Python-3.7.0.tgz’
    
    100%[============================================================================>] 22,745,726  86.3KB/s   in 2m 47s 
    
    2018-10-01 10:12:16 (133 KB/s) - ‘Python-3.7.0.tgz’ saved [22745726/22745726]

    2.2 编译

    tar xzvf Python-3.7.0.tgz
    
    cd Python-3.7.0
    
    mkdir /usr/local/src/python3   #这个是个人喜好放在这个目录
    
    ./configure --prefix=/usr/local/src/python3 --with-openssl=/usr/bin/openssl     #python3 这里是一个坑,需要安装ssl的支持
    
    make
    
    make install

    这一步可能遇到的问题:

    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的相关编译

    实际操作中,这个没有再出错了。

     2.3 检测

    ls /usr/local/src/python3/bin
    
    2to3              idle3    pip3.7    python3           python3.7m         pyvenv
    2to3-3.7          idle3.7  pydoc3    python3.7         python3.7m-config  pyvenv-3.7
    easy_install-3.7  pip3     pydoc3.7  python3.7-config  python3-config
    
    要注意的是产生了:python3和pip3.7
    
    /usr/local/src/python3/bin/python3 -V
    
    Python 3.7.0
    
    /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)
    
    这都OK了

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

    检查系统的python是python2.7的内容

    python -V
    
    Python 2.7.5
    
    which python
    
    /bin/python
    
    pip -V
    
    pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
    
    which pip
    
    /usr/pip

    链接替换:

    ln -s /usr/local/src/python3/bin/python3 /usr/bin/python -f
    
    ln -s /usr/local/src/python3/bin/pip3 /usr/bin/pip -f

    检查:

    [root Python-3.7.0]# python -V
    Python 3.7.0
    [root Python-3.7.0]# pip -V
    pip 10.0.1 from /usr/local/src/python3/lib/python3.7/site-packages/pip (python 3.7)

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

    ln -s /usr/local/src/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的指定

    vim /usr/bin/yum
    
    #!/usr/bin/python2.7
    
    除了yum脚本以外,还有:
    
    vim /usr/libexec/urlgrabber-ext-down
    同样是进行指定python2.7
  • 相关阅读:
    Using NAT between the vCenter Server system and ESXi/ESX hosts (1010652)
    Zabbix监控windows进程连接数
    CentOS yum [Errno 14] problem making ssl connection CentOs
    httpSecurity
    Nginx
    线程基础知识
    SqlServler
    关于数据库索引
    Https的底层原理
    Synchronized
  • 原文地址:https://www.cnblogs.com/supery007/p/12974812.html
Copyright © 2011-2022 走看看