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
Buffer2Disk
V2EX  ›  Python

Python 2.6 升级到 2.7,大家有什么经验没有

  •  
  •   Buffer2Disk · 2017-08-15 09:45:24 +08:00 · 3439 次点击
    这是一个创建于 2446 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,centos 6 系统,试了下升级到 2.7 以后, 以前装的很多软件都要重装才能用。

    换成 centos 7 的话,很多自己写的一键脚本又得重新写了

    29 条回复    2017-08-16 18:03:07 +08:00
    sagaxu
        1
    sagaxu  
       2017-08-15 09:52:58 +08:00 via Android
    不要升级系统级的 Python
    holinhot
        2
    holinhot  
       2017-08-15 09:53:58 +08:00
    不用吧。我写了个脚本升级,好像没啥异常。
    #!/bin/bash
    yum install make gcc gcc-c++ git zlib* openssl openssl-devel make -y

    #version
    pyv='2.7.12'


    cd /tmp
    wget https://www.python.org/ftp/python/$pyv/Python-$pyv.tgz
    tar zxvf Python-$pyv.tgz
    cd Python-$pyv
    sed -i 's/#zlib zlibmodule.c/zlib zlibmodule.c/'g Modules/Setup.dist
    ./configure
    make all
    make install
    make clean
    make distclean

    mv /usr/bin/python /usr/bin/python2.6.6
    ln -s /usr/local/bin/python2.7 /usr/bin/python

    sed -i 's#/usr/bin/python#/usr/bin/python2.6.6#g' /usr/bin/yum

    wget https://bootstrap.pypa.io/get-pip.py
    python get-pip.py

    rm -rf /tmp/zxvf Python-$pyv.tgz
    rm -rf /tmp/Python-$pyv
    rocksolid
        3
    rocksolid  
       2017-08-15 09:54:11 +08:00
    pyenv
    XiaoFaye
        4
    XiaoFaye  
       2017-08-15 09:54:42 +08:00
    我的经验是没事不要手贱去升级。。。
    wildcat007
        5
    wildcat007  
       2017-08-15 10:09:06 +08:00
    不要升级啊 自己脚本里面指定 python 路径呀
    比如

    #! /usr/bin/python2.7
    # coding=utf-8

    import xxxx
    brucedone
        6
    brucedone  
       2017-08-15 10:48:09 +08:00
    肯定不会去升级系统自带的,因为各种依赖,还不如装个虚拟环境,pyenv 或者 vitrual env .
    carlonelong
        7
    carlonelong  
       2017-08-15 10:50:15 +08:00
    还好不是 2.7 升到 3
    Buffer2Disk
        8
    Buffer2Disk  
    OP
       2017-08-15 10:52:46 +08:00
    @wildcat007 直接 down 源码下来编译安装会不会影响到 2.6 版本呐?
    Buffer2Disk
        9
    Buffer2Disk  
    OP
       2017-08-15 10:57:00 +08:00
    @holinhot 我试过这样升级后,原本装的 supervisor 就用不了了
    wizardoz
        10
    wizardoz  
       2017-08-15 11:08:02 +08:00
    为啥要升级?自己开发用的自己单独安装就好了。
    wildcat007
        11
    wildcat007  
       2017-08-15 11:48:12 +08:00
    @Buffer2Disk 不会的,你编译安装可以指定安装路径的,然后用上 virtulenv 会感觉 世界如此美好
    littleylv
        12
    littleylv  
       2017-08-15 11:53:37 +08:00
    年轻不懂事的时候曾经升过,然后悲剧了
    建议不要动系统的 python
    aaronzjw
        13
    aaronzjw  
       2017-08-15 11:59:15 +08:00 via Android
    你需要 anaconda
    ericgui
        14
    ericgui  
       2017-08-15 12:04:22 +08:00
    你应该升级的是 CentOS 的版本,而不是 python 的版本
    1runningbird
        15
    1runningbird  
       2017-08-15 12:14:21 +08:00
    我折腾过, 印象中是 yum 依赖于 python 2.6, 所以系统自带的 2.6 是不能被覆盖的。要不然很麻烦
    你需要自己手动安装 python2.7, 然后用 python2.7 安装 pip, 安装 virtualenv..........
    具体咋操作, 忘了.......
    dreamwar
        16
    dreamwar  
       2017-08-15 12:44:41 +08:00
    建议还是升级系统吧...
    douglas1997
        17
    douglas1997  
       2017-08-15 13:06:53 +08:00
    装个 anaconda 吧
    UnisandK
        18
    UnisandK  
       2017-08-15 13:09:05 +08:00
    yum install centos-release-SCL
    yum install python27
    scl enable python27 bash
    wlsnx
        19
    wlsnx  
       2017-08-15 13:15:38 +08:00
    直接装一个新的 python 就好了,不用动系统自带的
    ysicing
        20
    ysicing  
       2017-08-15 13:17:52 +08:00
    感觉 Debian 大法,至少没考虑 python 版本哈哈
    nosugar
        21
    nosugar  
       2017-08-15 14:01:36 +08:00
    装 py3,跟系统不冲突,自己脚本改改,PY3 是未来!
    whwq2012
        22
    whwq2012  
       2017-08-15 14:20:48 +08:00 via Android
    源码安装,不和系统的冲突就好。
    BOYPT
        23
    BOYPT  
       2017-08-15 14:27:32 +08:00
    configure --prefix 指定一个特别目录,比如 /opt/python27,不会影响系统的。
    NoAnyLove
        24
    NoAnyLove  
       2017-08-15 14:36:14 +08:00
    要么用 pyenv,要么不覆盖安装,用 make altinstall。推荐这篇文章: http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
    janxin
        25
    janxin  
       2017-08-15 21:11:27 +08:00
    @ysicing 上 3.6.x 了吗?
    otakustay
        26
    otakustay  
       2017-08-15 22:04:30 +08:00
    什么,python 连小版本都有 breaking change ?
    lolizeppelin
        27
    lolizeppelin  
       2017-08-15 23:25:34 +08:00
    用兼容方法写代码, 2.6 2.7 的兼容还是比较简单的
    ysicing
        28
    ysicing  
       2017-08-16 00:05:05 +08:00
    @janxin 嗯全部搞到了 3.6.1
    ferstar
        29
    ferstar  
       2017-08-16 18:03:07 +08:00
    经验就是不要动系统级的 Python 版本,有需要上 virtualenv,pyenv,anaconda 都是很好的办法,互不影响
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1868 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:27 · PVG 00:27 · LAX 09:27 · JFK 12:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.