项目中用到进程守护服务supervisord,发现系统是centos 6.8版本,python版本是2.6,supervisord支持的不是很好,刚好就给大家来分享一下python升级。

注意:python是linux系统标准中使用较多的一个脚本语言,随意升级python版本可能导致系统稳定性异常,本文就介绍一种不影响系统稳定性情况单独升级python版本。

#wget https://python.org/ftp/python/2.7.12/Python-2.7.12.tgz
#wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz
#wget http://python.org/ftp/python/2.7.9/Python-2.7.9.tgz   //或者使用2.7.9版本
#tar -zxvf Python-2.7.9.tgz
#./configure --prefix=/usr/local/python27
#make;make install
#mv /usr/bin/python /usr/bin/python2.6 //替换python入口链接,将原来的python备份为2.6
#ln -s /usr/local/python27/bin/python /usr/bin/python

    CentOS升级Python2.7导致使用pip等命令安装模块失败
        # pip
        Traceback (most recent call last):
        File "/usr/bin/pip", line 5, in <module>
            from pkg_resources import load_entry_point
        ImportError: No module named pkg_resources
        出现这个问题是因为:虽然已经把Python升级到了2.7版本,但是pip仍然是原来的版本,仍在原来python的site-package里面
        CentOS6.8环境下,默认是python2.6.6,site-package在
        # /usr/lib/python2.6/site-packages/
        很多模块都被安装在这里。直接输入pip,还是使用的原来的pip。所以我们的思路是:应该在新的Python中安装pip,这样才不会报错。
        遇到此问题的人很多,网上博客都是互相抄,没有真正解决问题的。有一国外网站给出了解决方案(参考https://www.cnblogs.com/liu-ke/p/7000103.html):
    python升级后pip无法使用安装各中python模块解决方案:
        # wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.5.1.zip
        # unzip setuptools-3.5.1.zip
        # /usr/local/bin/pyton setup.py install     //安装setuptools 
        # /usr/local/bin/easy_install pip           //使用setuptools 安装pip
        # /usr/local/bin/pip -V
        #pip2.7 -V
        pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
        #pip2.7 install celery          #使用新的python site-packages(也即pip2.7)安装新的python语言的程序(比如celery)

    **注意:**
    1、解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,需要指定 yum 的Python版本
    #vi /usr/bin/yum  
    将文件头部的
    #!/usr/bin/python
    改成
    #!/usr/bin/python2.6.6

    2、现有已经装好的python程序,如何保证重启后可以继续使用(因为python的pkg_resources环境目录变了)
    如下错误:
        [root@mcuhome logs]# supervisorctl 
        Traceback (most recent call last):
        File "/usr/bin/supervisorctl", line 5, in <module>
            from pkg_resources import load_entry_point
        ImportError: No module named pkg_resources
    vi修改如下python脚本文件
    [root@mcuhome logs]# cat /usr/bin/supervisord |more
    #!/usr/bin/python
    ......
    [root@mcuhome logs]# cat /usr/bin/supervisorctl |more
    #!/usr/bin/python
    ......
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐