标签归档:python

python版本问题,iotop执行错误except ImportError, e:解决

# iotop 
  File “/usr/sbin/iotop”, line 10
    except ImportError, e:
                      ^
SyntaxError: invalid syntax
[root@eanquan ~]# vi /usr/sbin/iotop 
#!/usr/bin/python
# iotop: Display I/O usage of processes in a top like UI
# Copyright (c) 2007, 2008 Guillaume Chazarain <guichaz@gmail.com>, GPLv2
# See iotop –help for some help

import sys

try:
    from iotop.ui import main
except ImportError, e:
    print e
    print ‘To run an uninstalled copy of iotop,’
    print ‘launch iotop.py in the top directory’
else:
    try:
        main()
    except KeyboardInterrupt:
        pass

    sys.exit(0)

# ll /usr/bin/python2*0 B/s  0.00 %  0.00 % [md/1]
lrwxrwxrwx. 1 root root       6 Jul  8  2016 /usr/bin/python2 -> python
-rwxr-xr-x. 2 root root    4864 Jan 22  2014 /usr/bin/python2.6
-rwxr-xr-x  1 root root 6273947 Dec  4  2017 /usr/bin/python2.7

执行python的#!/usr/bin/python 改为

#!/usr/bin/python2.6就可以

python升级导致yum命令无法使用的解决办法

1、报错信息如下:

[plain]view plain copy

 print?

  1. [root@develop bin]# yum  
  2. [root@develop local]# yum -y install prce  
  3. There was a problem importing one of the Python modules  
  4. required to run yum. The error leading to this problem was:  
  5.   
  6.   
  7.    No module named yum  
  8.   
  9.   
  10. Please install a package which provides this module, or  
  11. verify that the module is installed correctly.  
  12.   
  13.   
  14. It’s possible that the above module doesn’t match the  
  15. current version of Python, which is:  
  16. 2.6.1 (r261:67515, Aug 7 2010, 11:36:17)  
  17. [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)]  
  18.   
  19.   
  20. If you cannot solve this problem yourself, please go to  
  21. the yum faq at:  
  22. http://wiki.linux.duke.edu/YumFaq  









错误原因:错误信息描述为 yum 所依赖的python 不相符,请安装相对应的python即可





2、查看yum版本

[root@develop local]# rpm -qa |grep yum

yum-3.2.8-9.el5.centos.1

yum-metadata-parser-1.1.2-2.el5





3、查看python版本

[plain]view plain copy

 print?

  1. [root@develop local]# whereis python  
  2. python: /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.4 /usr/local/bin/python2.6 /usr/local/bin/python2.6-config /usr/local/bin/python /usr/local/lib/python2.6 /usr/share/man/man1/python.1.gz  







果然装了两个版本python





4、执行python,查看到使用2.6.1的版本

[plain]view plain copy

 print?

  1. [root@develop local]# python  
  2. Python 2.6.1 (r261:67515, Aug 7 2010, 11:36:17)  
  3. [GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2  
  4. Type “help”, “copyright”, “credits” or “license” for more information.  
  5. >>>  









5、猜测yum调用了高版本的python。





6、解决方法:

查找yum和 yum-updatest文件,并编辑此py文件

[plain]view plain copy

 print?

  1. [root@develop local]# which yum  
  2. /usr/bin/yum  
  3. [root@develop local]# vi /usr/bin/yum  
[plain]view plain copy

 print?

  1. [root@develop local]# vi /usr/bin/yum-updatest  









#!/usr/bin/python

改为:

#!/usr/bin/python2.4





然后保存OK.


如果不修改/usr/bin/yum ,则yum无法使用

如果不修改/usr/bin/yum-updatest  会出现如下错误

 File “/usr/sbin/yum-updatesd”, line 35, in <module>
    import dbus
ImportError: No module named dbus

在Linux CentOS 6.6上升级Python 2.7.9

CentOS 6.6自带的是Python 2.6.6,而编译llvm需要Python 2.7以上,必须升级Python 

checking for python... /usr/bin/python
checking for python >= 2.7... not found
configure: error: found python 2.6.6 (/usr/bin/python); required >= 2.7

yum中最新的也是Python 2.6.6,只能下载Python 2.7.9的源代码自己编译安装。

操作步骤如下:

1)安装devtoolset

yum groupinstall "Development tools"

2)安装编译Python需要的包包

yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel

3)下载并解压Python 2.7.9的源代码

cd /opt
wget --no-check-certificate https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
tar xf Python-2.7.9.tar.xz
cd Python-2.7.9

4)编译与安装Python 2.7.9

./configure --prefix=/usr/local
make && make altinstall

5)将python命令指向Python 2.7.9

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

6)检查Python版本

sh
sh-4.1# python -V
Python 2.7.9