V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
shyrock
V2EX  ›  Linux

CentOS 升级 python 怎么弄?

  •  
  •   shyrock · 2014-04-18 23:01:40 +08:00 · 5642 次点击
    这是一个创建于 3878 天前的主题,其中的信息可能已经有所发展或是发生改变。
    CentOS6.5默认的python是2.6,升级2.7.6后,修改系统默认python指向2.7.6。结果系统各种不服,先是yum用不了,改了yum头指向旧版本后解决。
    接着输入法弹不出im-chooser,一查又是python版本不对。。。

    我估摸着没看见的地方还有无数需要修改指向旧版本python的地方,求高手指点怎么才能升级centos的python又不影响系统功能?
    28 条回复    1970-01-01 08:00:00 +08:00
    ovalley
        1
    ovalley  
       2014-04-18 23:08:31 +08:00
    这是个坑,建议换成ubuntu
    wuxqing
        2
    wuxqing  
       2014-04-18 23:11:44 +08:00   ❤️ 1
    我是单独安装python2.7.6到/opt下面,然后配合virtualenv使用
    ehs2013
        3
    ehs2013  
       2014-04-18 23:34:47 +08:00   ❤️ 2
    use `make altinstall` instead of `make install`
    halfbloodrock
        4
    halfbloodrock  
       2014-04-18 23:54:38 +08:00
    如果你是因为开发要引入多个Python的版本的话,单独安装到某个目录然后导入$PATH,不要随意改系统默认的Python。。。
    skyworker
        5
    skyworker  
       2014-04-19 00:02:20 +08:00 via Android
    用Debian系的OS
    0bit
        6
    0bit  
       2014-04-19 00:06:02 +08:00
    可以用pyenv来管理多个不同的python版本
    gaicitadie
        7
    gaicitadie  
       2014-04-19 00:08:17 +08:00
    linux自带python,是优点也是缺点。不像ruby,想装哪个版本装哪个版本
    shyrock
        8
    shyrock  
    OP
       2014-04-19 00:16:27 +08:00
    @ovalley ubuntu的内置python是2.7?
    @wuxqing 哦,学习一下virtualenv怎么用。。。
    @ehs2013 这样做的效果是?系统程序继续2.6?我用2.7的时候怎么办呢?
    ehs2013
        9
    ehs2013  
       2014-04-19 00:19:32 +08:00   ❤️ 1
    @shyrock 不把 python 软连接到 python2.7
    用 2.7 的时候直接 python2.7
    shyrock
        10
    shyrock  
    OP
       2014-04-19 00:20:50 +08:00
    @halfbloodrock 是说系统的继续保留python指向2.6。自己开发使用的时候显式指定2.7?
    @skyworker Debian没有这个问题?原因是什么?
    @0bit 意思是用pyenv切换开发用python版本,同时系统python不变是吧?
    @gaicitadie 哎,就是因为windows下面python编译报告vc环境问题很难解决所以才尝试linux,没想到也不轻松。。。
    shyrock
        11
    shyrock  
    OP
       2014-04-19 00:21:26 +08:00
    @ehs2013 明白意思了。。。
    echo1937
        12
    echo1937  
       2014-04-19 00:24:48 +08:00
    在这个方面,ruby比python先进太多了.

    rvm好东西.
    gaicitadie
        13
    gaicitadie  
       2014-04-19 00:35:55 +08:00
    @shyrock windows下面不用编译啊,activepython直接安装,非常好用
    kodango
        14
    kodango  
       2014-04-19 01:07:11 +08:00   ❤️ 2
    我印象中 yum 是写死用 /usr/bin/python 的,所以你只要安装一个 python 不要覆盖这个路径就可以,比如安装到 /usr/local/bin 目录下,同事保证 /usr/local/bin 在 PATH 中位于 /usr/bin 之前,这样就没问题了。
    jiang42
        15
    jiang42  
       2014-04-19 01:50:06 +08:00
    这是个坑,换FreeBSD就好了
    simaoji
        16
    simaoji  
       2014-04-19 03:04:25 +08:00
    两个都保留着吧
    Comphuse
        17
    Comphuse  
       2014-04-19 05:37:13 +08:00
    SCL
    anheiyouxia
        18
    anheiyouxia  
       2014-04-19 07:14:30 +08:00 via Android
    我忘记我怎么搞的了
    也是centos
    python -V
    是2.7,yum也能正常运行,之前就是因为替换了系统自带的后yum用不了,上网找解决方案找到的,但现在似乎找不到这篇东西了
    nervouna
        19
    nervouna  
       2014-04-19 07:46:04 +08:00
    virtualenv 不行吗?
    yakczh
        20
    yakczh  
       2014-04-19 07:57:36 +08:00
    centos5.8是python2.4 因为要装nodejs 换成python2.7也是很多坑
    GTim
        21
    GTim  
       2014-04-19 08:27:39 +08:00
    哪里不能用就改变哪里的!/usr/bin/env python
    wangfeng3769
        22
    wangfeng3769  
       2014-04-19 08:53:58 +08:00
    #yum
    sed -i '1s/#!\/usr\/bin\/python$/#!\/usr\/bin\/python2.4/' /usr/bin/yum
    wangfeng3769
        23
    wangfeng3769  
       2014-04-19 08:55:06 +08:00
    只要把yum的具体版本具体依赖设定好就行了。
    ksc010
        24
    ksc010  
       2014-04-19 09:07:25 +08:00
    开发用的话 通过virtualenv就行
    P9
        25
    P9  
       2014-04-19 09:24:38 +08:00
    @wuxqing 就是这个方法。 还有好用的virtualenvwrapper
    Suanlatang
        26
    Suanlatang  
       2014-04-19 10:00:24 +08:00 via iPhone
    。。。我给你说正确的办法吧

    whereis python

    python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.7-config /usr/local/bin/python /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/include/python2.4 /usr/share/man/man1/python.1.gz

    手动修改/usr/bin/yum脚本头部
    将#!/usr/bin/python改成#!/usr/bin/python2.4

    备注,显示出来版本是多少就修改成多少


    好用点个感谢吧
    VYSE
        27
    VYSE  
       2014-04-19 10:41:15 +08:00 via Android   ❤️ 1
    从来就不是坑,编译后放在opt或home目录,bashrc修改PATH,PYTHONPATH,alias sudo,yum从来没因为python27坏过。坏过原因只有一次,PATH某目录里有高版本zlib。
    至于用Py3,只使用python3即可
    shyrock
        28
    shyrock  
    OP
       2014-04-19 22:33:17 +08:00
    @gaicitadie 我在windows下安全numpy的时候,告诉我找不到vc环境。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2683 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:03 · PVG 20:03 · LAX 04:03 · JFK 07:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.