Python 2.6 升级至 Python 2.7 的实践心得 - V2EX
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 7707 次点击
    这是一个创建于 3091 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    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(pippah): 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  
       017-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
    这不是挖坟吧
    RealLiuSha
        21
    RealLiuSha  
       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     Solana     5435 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:43 PVG 15:43 LAX 00:43 JFK 03:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86