centos7更换python3并保留python2

环境说明:

  • centos7 -- 镜像文件为:CentOS-7-x86_64-DVD-1804.iso(官网可以下载)
  • 安装python版本:Python-3.5.4
  1. 安装编译依赖包,不可省略

    yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
    
yum install openssl-devel   -y
# 解决该报错ModuleNotFoundError: No module named '_ctypes'
yum install libffi-devel -y
yum install zlib-devel  -y

python3.7以上版本需要依赖yum install libffi-devel -y , 否则会提示ModuleNotFoundError: No module named '_ctypes'报错

  1. 下载python3版本包

    • 下载地址为:https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
  2. 解压软件包

tar -zxvf ./Python-3.5.5.tgz
  1. 编译python3

    ./configure prefix=/usr/local/python3
    
    make && make install
    
  2. 创建python软链接,替换python3命令指向python

    ln -s /usr/local/python3/bin/python3 /usr/bin/python
    
    # 执行验证
    [root@localhost ~]# python
    Python 3.5.5 (default, May 25 2018, 12:19:07) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    # 注意版本号,3.5.5,此步骤说明python已经可以正常使用了。
    
  3. 创建pip软链接

    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
    
    # 执行验证
    [root@localhost winfonts]# pip --version
    pip 10.0.1 from /usr/local/python3/lib/python3.5/site-packages/pip (python 3.5)
    # 注意版本号,指向的python版本3.5的 
    
  4. 问题归纳:

    • 在实际部署时,出现了 pip - command not found 的错误

      • 解决方案(重新安装pip):
        wget https://bootstrap.pypa.io/get-pip.py
        python get-pip.py 
      
        # 重新做 pip 软链接,测试即可
      
    • 后期某些服务出现了无法启动的问题

      • 解决方案(修改启动文件):
        此处以防火墙服务为例:
        [root@localhost ~]# vim /usr/sbin/firewalld
      #!/usr/bin/python -Es
      需要将文件第一行的python改为python2 ,因为此时的python已经指向了python3.5 
      #!/usr/bin/python2 -Es
      

    重新启动服务即可!每个服务的配置文件自行查询

    link_from ; https://www.cnblogs.com/wenchengxiaopenyou/p/5709218.html

你可能感兴趣的:(centos7更换python3并保留python2)