V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wsgzao
V2EX  ›  Python

Python 2.6 升级至 Python 2.7 的实践心得

  •  
  •   wsgzao ·
    wsgzao · Apr 27, 2017 · 8084 views
    This topic created in 3288 days ago, the information mentioned may be changed or developed.

    前言

    CentOS 6.8 安装 Python 2.7.13,因为软件版本上的需求所以考虑将 Python 升级至 2.7.13,加上生产环境还是以 RHEL 6 为主,互联网自动化运维平台大多数也推荐以 Python 2.7.x + CentOS 6.x 来操作,选择 Python 2 还是 Python 3 也没有定论,找到适合的搭配即可。

    Python 2.6 升级至 Python 2.7 的实践心得

    更新历史

    2017 年 04 月 26 日 - 初稿

    阅读原文 - https://wsgzao.github.io/post/python-2-6-update-to-2-7/

    扩展阅读

    Python - https://www.python.org/ PyPI - https://pypi.python.org/pypi pip - https://pip.pypa.io/en/stable/user_guide/#configuration


    简单安装

    因为 Python 2.7.13 以后版本会自动完善 yum 配置,所以不必参考以前的网上文章去修改其他地方

    # 查看当前系统中的 Python 版本,返回 Python 2.6.6 为正常
    python --version
    
    Python 2.6.6
    
    # 检查 CentOS 版本,返回 CentOS release 6.8 (Final) 为正常
    cat /etc/redhat-release
    
    CentOS release 6.8 (Final)
    
    # 安装所有的开发工具包
    yum groupinstall -y "Development tools"
    # 安装其它的必需包
    yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
    
    # 下载、编译和安装 Python 2.7.13
    #wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
    tar zxf Python-2.7.13.tgz
    cd Python-2.7.13
    ./configure
    make && make install
    
    # 查看新的 Python 版本,返回 Python 2.7.13 为正常
    python --version
    
    Python 2.7.13
    
    

    ansible 离线安装实践

    这里利用了一些内网离线安装 ansible 的小技巧,相关文件我会上传至网盘

    # Install Python
    tar xf Python-2.7.13.tgz
    cd Python-2.7.13
    ./configure
    make
    make install
    
    # ImportError: No module named six.moves
    tar xf six-1.10.0.tar.gz
    cd six-1.10.0
    python setup.py install
    cd ..
    # ImportError: No module named packaging.version
    tar xf packaging-16.8.tar.gz
    cd packaging-16.8
    python setup.py install
    cd ..
    # ImportError: No module named pyparsing
    tar xf pyparsing-2.2.0.tar.gz
    cd pyparsing-2.2.0
    python setup.py install
    cd ..
    # ImportError: No module named appdirs
    tar xf appdirs-1.4.3.tar.gz
    cd appdirs-1.4.3
    python setup.py install
    cd ..
    # Install Setuptools
    unzip setuptools-34.2.0.zip
    cd setuptools-34.2.0
    python setup.py install
    cd ..
    # Install pip
    tar xf pip-9.0.1.tar.gz
    cd pip-9.0.1
    python setup.py install
    cd ..
    
    # pip 离线下载依赖包
    pip install -d ~/tmp/ ansible
    pip install -d ~/tmp/ ansible-cmdb
    
    # pip 离线安装
    pip install ansible --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1
    pip install ansible-cmdb --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1
    
    # 查看安装好的版本
    [root@ansible-wangao ansible]# pip -V
    pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
    
    [root@ansible-wangao ansible]# ansible --version
    ansible 2.3.0.0
      config file = /etc/ansible/ansible.cfg
      configured module search path = Default w/o overrides
      python version = 2.7.13 (default, Apr 25 2017, 17:19:23) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
    
    [root@ansible-wangao ansible]# ansible-cmdb --version
    ansible-cmdb v1.20
    
    # 更换豆瓣 pip 源
    vim  $HOME/.pip/pip.conf
    
    [global]
    index-url = https://pypi.doubanio.com/simple/
    [install]
    
    trusted-host=pypi.doubanio.com
    
    

    Windows 安装 Python 2.7.x

    Windows 下安装扩展包可能没有想象中那么顺利,遇到安装不上的包推荐去下面这个网址看看

    http://www.lfd.uci.edu/~gohlke/pythonlibs/

    下载 Python,如 2.7.13 https://www.python.org/downloads/ https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi

    安装时注意勾选环境变量 Add python.exe to Path

    安装 python2.7.13 默认自带 pip 版本为 9.0.1 PS C:\Users\Administrator> pip -V pip 9.0.1 from c:\python27\lib\site-packages (python 2.7)

    安装 Python 后升级 pip python -m pip install --upgrade pip

    # 更换 pypi 国内源,运行以下 python 代码会自动建立 pip.ini
    import os
    
    ini="""[global]
    index-url = https://pypi.doubanio.com/simple/
    [install]
    trusted-host=pypi.doubanio.com
    """
    pippath=os.environ["USERPROFILE"]+"\\pip\\"
    
    if not os.path.exists(pippath):
        os.mkdir(pippath)
    
    with open(pippath+"pip.ini","w+") as f:
        f.write(ini)
    

    离线安装包

    http://pan.baidu.com/s/1o7J8QBw

    29 replies    2017-05-09 17:11:55 +08:00
    wwqgtxx
        1
    wwqgtxx  
       Apr 27, 2017 via iPhone   ❤️ 2
    都 python3.6 了,还在讨论怎么从 2.6 升级当 2.7,也是醉了
    alen
        2
    alen  
       Apr 27, 2017
    我开始用 pyenv,环境变量有问题退出账号后再次登陆就有问题,后来索性下载最新的 2.7.13 编译,改 yum 和 pip 就 OK 了,环境( Centos6.5 )
    gyorou
        3
    gyorou  
       Apr 27, 2017   ❤️ 1
    hiboshi
        4
    hiboshi  
       Apr 27, 2017
    表示升级到 2.7 后 yum 不能用了
    simple2025
        5
    simple2025  
       Apr 27, 2017
    所以我用 ubuntu,升级麻烦。。
    est
        6
    est  
       Apr 27, 2017
    miniconda2 保平安。
    alen
        7
    alen  
       Apr 27, 2017
    @hiboshi 修改 yum 调用的 python 版本指向之前的版本
    hiboshi
        8
    hiboshi  
       Apr 27, 2017
    @alen 然后我就重装 ub 了,本来也不熟悉 centos
    limbo0
        9
    limbo0  
       Apr 27, 2017   ❤️ 1
    选择 Python 2 还是 Python 3 也没有定论

    肯定是 3 啊, 2 马上就不支持了
    coolcoffee
        10
    coolcoffee  
       Apr 27, 2017
    @limbo0 等到停止更新那天,再考虑升级 python3 也不迟呀。 这又不是操作系统,停止了更新就容易遭受到新的漏洞攻击。
    Kilerd
        11
    Kilerd  
       Apr 27, 2017 via iPhone
    pyenv 欢迎你
    think2011
        12
    think2011  
       Apr 27, 2017
    作为一名前端开发人员和 python 新手,我依然表示不能理解... 🐣
    raysonx
        13
    raysonx  
       Apr 27, 2017 via Android
    CentOS6 可以用 scl 源将 python2.7 安装到非默认路径,不需要自己编译
    Muninn
        14
    Muninn  
       Apr 27, 2017
    这还要写一篇文章 也是醉了。。。
    lybenson
        15
    lybenson  
       Apr 27, 2017
    所以我选择 anaconda
    Cooky
        16
    Cooky  
       Apr 27, 2017 via Android
    @Muninn +1
    neroxps
        17
    neroxps  
       Apr 27, 2017 via iPhone
    @raysonx 求 url ?或者详细方法谢谢。
    julyclyde
        18
    julyclyde  
       Apr 27, 2017
    一般来说贴些无用文章都是一些垃圾小网站做的
    习惯性我就看最后一行了
    居然不是
    GoBeyond
        19
    GoBeyond  
       Apr 27, 2017 via Android
    为什么要升级?能带来性能上的提升么?
    leavic
        20
    leavic  
       Apr 27, 2017
    这不是挖坟吧
    RealLiuSha
        21
    RealLiuSha  
       Apr 27, 2017
    已经 3.6 了。。。。
    limbo0
        22
    limbo0  
       Apr 27, 2017
    @coolcoffee 能升最好一次升完, 要不 lz 又要开始写 2.x 升级 3.x 了 233
    timothyye
        23
    timothyye  
       Apr 27, 2017 via Android
    很多项目是有历史包袱的吧
    lichun
        24
    lichun  
       Apr 27, 2017
    百度云盘。。。
    kuretru
        25
    kuretru  
       Apr 27, 2017 via iPhone
    有更简便的方法
    function InstallPython27()
    {
    yum -y install https://rhel6.iuscommunity.org/ius-release.rpm
    rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
    yum -y install python27 python27-devel python27-pip python27-setuptools python27-virtualenv
    cd /usr/bin
    rm -rf /usr/bin/python
    ln -s python2.7 python
    sed -i "s|#!/usr/bin/python|#!/usr/bin/python2.6|" yum
    }
    panda1001
        26
    panda1001  
       Apr 28, 2017 via Android
    有了 centos py2 至少还能战十年
    pyufftj
        27
    pyufftj  
       Apr 28, 2017
    python3 哭晕在厕所
    mcfog
        28
    mcfog  
       Apr 28, 2017 via Android
    win98 升级 winxp 的心得
    qsnow6
        29
    qsnow6  
       May 9, 2017
    @mcfog 6666
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2872 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42
    ♥ Do have faith in what you're doing.