V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2017-04-27 09:21:25 +08:00 · 7342 次点击
    这是一个创建于 2796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

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

    肯定是 3 啊, 2 马上就不支持了
    coolcoffee
        10
    coolcoffee  
       2017-04-27 10:01:09 +08:00
    @limbo0 等到停止更新那天,再考虑升级 python3 也不迟呀。 这又不是操作系统,停止了更新就容易遭受到新的漏洞攻击。
    Kilerd
        11
    Kilerd  
       2017-04-27 10:02:24 +08:00 via iPhone
    pyenv 欢迎你
    think2011
        12
    think2011  
       2017-04-27 10:15:50 +08:00
    作为一名前端开发人员和 python 新手,我依然表示不能理解... 🐣
    raysonx
        13
    raysonx  
       2017-04-27 10:19:13 +08:00 via Android
    CentOS6 可以用 scl 源将 python2.7 安装到非默认路径,不需要自己编译
    Muninn
        14
    Muninn  
       2017-04-27 10:22:44 +08:00
    这还要写一篇文章 也是醉了。。。
    lybenson
        15
    lybenson  
       2017-04-27 10:23:45 +08:00
    所以我选择 anaconda
    Cooky
        16
    Cooky  
       2017-04-27 10:47:05 +08:00 via Android
    @Muninn +1
    neroxps
        17
    neroxps  
       2017-04-27 10:47:54 +08:00 via iPhone
    @raysonx 求 url ?或者详细方法谢谢。
    julyclyde
        18
    julyclyde  
       2017-04-27 10:57:00 +08:00
    一般来说贴些无用文章都是一些垃圾小网站做的
    习惯性我就看最后一行了
    居然不是
    GoBeyond
        19
    GoBeyond  
       2017-04-27 12:12:34 +08:00 via Android
    为什么要升级?能带来性能上的提升么?
    leavic
        20
    leavic  
       2017-04-27 15:00:56 +08:00
    这不是挖坟吧
    lgpqdwjh
        21
    lgpqdwjh  
       2017-04-27 17:37:08 +08:00
    已经 3.6 了。。。。
    limbo0
        22
    limbo0  
       2017-04-27 20:18:50 +08:00
    @coolcoffee 能升最好一次升完, 要不 lz 又要开始写 2.x 升级 3.x 了 233
    timothyye
        23
    timothyye  
       2017-04-27 20:22:18 +08:00 via Android
    很多项目是有历史包袱的吧
    lichun
        24
    lichun  
       2017-04-27 21:17:05 +08:00
    百度云盘。。。
    kuretru
        25
    kuretru  
       2017-04-27 21:32:01 +08:00 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  
       2017-04-28 06:59:46 +08:00 via Android
    有了 centos py2 至少还能战十年
    pyufftj
        27
    pyufftj  
       2017-04-28 09:12:58 +08:00
    python3 哭晕在厕所
    mcfog
        28
    mcfog  
       2017-04-28 10:09:38 +08:00 via Android
    win98 升级 winxp 的心得
    qsnow6
        29
    qsnow6  
       2017-05-09 17:11:55 +08:00
    @mcfog 6666
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2801 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 11:44 · PVG 19:44 · LAX 03:44 · JFK 06:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.