CentOS下升级python版本

源码安装python

  • 安装python源码所依赖的工具及依赖的库

    yum install -y make gcc gcc-c++
    yum install -y bzip2 bzip2-devel zlib-devel
    yum install -y openssl openssl-devel readline-devel sqlite-devel
    yum install -y make xz
    
  • 下载安装python源码

    官方网站或者华为镜像源下载所有需的源码包,此处以Python-2.7.18.tar.xz为例.

    wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
    yum -y install make xz
    xz -d Python-2.7.18.tar.xz
    tar xvf Python-2.7.18.tar
    mkdir -p Python-2.7.18/build
    cd Python-2.7.18/build
    ../configure --enable-shared --enable-optimizations --prefix=/usr/local/python2
    make
    make install
    

    make install can overwrite or masquerade the python3 binary. make altinstall is therefore recommended instead of make install since it only installs exec_prefix/bin/pythonversion.

  • 通过下面命令可以查看安装包的路径

    $ python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())"
    /usr/lib/python2.7/site-packages
    $ python -c "import os; print os.__file__"
    /usr/lib64/python2.7/os.pyc
    $ python -c "import sys; print sys.executable"
    /usr/bin/python
    
  • 其他配置

    • 解决python运行时找不到动态库的问题

      echo /usr/local/python2/lib > /etc/ld.so.conf.d/python27-x86_64.conf  # 将/usr/local/python2/lib添加到/etc/ld.so.conf文件末尾
      ldconfig
      
    • 工具yum使用的原版的python,在这里需要处理。
      vi /usr/bin/yum

      将第一行的#!/usr/bin/python修改为系统原有的python版本地址#!/usr/bin/python2.6

  • python升级脚本

    #!/bin/bash
    
    FILE_DIR=$(cd "$(dirname "$0")"; pwd)
    
    function upgrade_python {
        # 安装编译python源码必须的工具
        yum -y install wget xz 
        yum -y install gcc gcc-c++
        yum -y install make automake autoconf
        
        yum -y install bzip2 bzip2-devel bzip2-libs zlib-devel readline-devel
        yum -y install openssl openssl-devel
        yum -y install bind-utils
    
        # 下载python源码包
        [ -e Python-2.7.18.tar.xz ] || wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
    
        xz -k -d Python-2.7.18.tar.xz
        tar xvf Python-2.7.18.tar
        mkdir -p Python-2.7.18/build
        cd Python-2.7.18/build
        ../configure --enable-shared --enable-optimizations --prefix=/usr/local/python2
        make
        make install
        cd "${FILE_DIR}"
    
        # 解决Python运行时找不到动态库的问题
        echo "/usr/local/python2/lib" > /etc/ld.so.conf.d/python27-x86_64.conf
        ldconfig
    
        # yum工具默认依赖python2.6,需要修改
        sed -i '1s/python$/python2.6/' /usr/bin/yum
    
        # 备份/usr/bin/python,连接到新安装的python版本上
        mv /usr/bin/python{,_bk}
        ln -s /usr/local/bin/python /usr/bin/python
    
    	# 安装pip setuptools wheel工具包
    	wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -O - | /usr/local/python2/bin/python2.7
    }
    
    upgrade_python
    
  • python -c "import sysconfig; print(sysconfig.get_config_vars(\"CONFIG_ARGS\"))"可以查看python的配置参数

Sat Mar 6 17:48:27 CST 2021 CentOS7 Python3.8.8

yum install gcc gcc-c++ make pkgconfig
yum install libffi-devel zlib-devel xz-devel bzip2-devel readline-devel sqlite-devel ncurses-devel gdbm-devel openssl-devel expat-devel libtirpc-devel libuuid-devel
CXX=/usr/bin/g++ ./configure --prefix=/usr/local/python388 --with-ssl-default-suites=openssl
make -j 4
make altinstall
ls /usr/local/python388/bin/
# 2to3-3.8  easy_install-3.8  idle3.8  pip3.8  pydoc3.8  python3.8  python3.8-config

工具包安装及使用

打包工具setuptools

  • 功能:Easily download, build, install, upgrade, and uninstall Python packages
  • 具体安装方法请自行参考:https://pypi.python.org/pypi/setuptools#downloads
  • 官网倡导的安装方法:wget https://bootstrap.pypa.io/ez_setup.py -O - | python

此包给用户使用的easy_install工具,安装需要的包简单易用,开发者发布包的所需指导。

包安装工具pip

  • 功能:The PyPA recommended tool for installing Python packages
  • wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py -O - | python
  • pip主页地址:https://pypi.python.org/pypi/pip#downloads
  • 源码安装
    wget  https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196tar
    zxvf pip-7.1.2.tar.gz
    cd pip-7.1.2
    python setup.py install
    

安装后的工具path:PythonXX/Scripts,在window下有必要将此路径加入环境变量path中

使用pip:

  • pip --help 查看pip的帮助文档
  • pip list 查看已安装的packages
  • pip install xlrd 安装xlrd,用于处理Excel的packages
    其他应用请参照pip帮助

Python自动文档工具pydoc

首先认识一条比较重要的命令
python -m mod 作为脚本运行mod库,if name == 'main’是作为脚本运行的部分.

  • python -m SimpleHTTPServer 6666 #简单一个命令搭建目录服务器
  • 查看math库手册 python -m pydoc math
  • 查看函数手册 python -m pydoc math.asin
  • 开启本地手册服务器,可以再网页上查看所有的库函数手册,感觉十分强大 python -m pydoc -p port

python2脚本转化为python3脚本的工具2to3

python是中十分强大的语言,但它的高速发展,也给广大开发这带来许多困惑,python3并不兼容python2
Python3x/Tools/Scripts/2to3.py

#test.py
def greet(name):
    print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)

C:/Python34/Tools/Scripts/2to3.py -w test.py

#test.py
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)

这里可以看到2to3后的变化
pirnt函数函数调用的方式使用,raw_input替换成了input

详细转换请参照python3的手册以及http://woodpecker.org.cn/diveintopython3/porting-code-to-python-3-with-2to3.html

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

callinglove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值