No module named ConfigParser

不管是下载软件包,卸载软件包,甚至是执行apt-get upgrade都会报错:

Traceback (most recent call last):
  File "/usr/bin/pycompile", line 35, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
  File "/usr/share/python/debpython/version.py", line 24, in <module>
    from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
dpkg: 处理软件包 python-decorator (--configure)时出错:
 子进程 已安装 post-installation 脚本 返回错误状态 1
正在设置 python-numpy (1:1.11.0-1ubuntu1) ...
Traceback (most recent call last):
  File "/usr/bin/pycompile", line 35, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
  File "/usr/share/python/debpython/version.py", line 24, in <module>
    from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
dpkg: 处理软件包 python-numpy (--configure)时出错:
     子进程 已安装 post-installation 脚本 返回错误状态 1
    正在设置 python-pil:amd64 (3.1.2-0ubuntu1.1) ...
    Traceback (most recent call last):
      File "/usr/bin/pycompile", line 35, in <module>
        from debpython.version import SUPPORTED, debsorted, vrepr, \
      File "/usr/share/python/debpython/version.py", line 24, in <module>
        from ConfigParser import SafeConfigParser
    ImportError: No module named 'ConfigParser'
    dpkg: 处理软件包 python-pil:amd64 (--configure)时出错:
     子进程 已安装 post-installation 脚本 返回错误状态 1
    正在设置 python-xlib (0.14+20091101-5) ...
    Traceback (most recent call last):
      File "/usr/bin/pycompile", line 35, in <module>
        from debpython.version import SUPPORTED, debsorted, vrepr, \
      File "/usr/share/python/debpython/version.py", line 24, in <module>
        from ConfigParser import SafeConfigParser
    ImportError: No module named 'ConfigParser'
    dpkg: 处理软件包 python-xlib (--configure)时出错:
     子进程 已安装 post-installation 脚本 返回错误状态 1
    由于已经达到 MaxReports 限制,没有写入 apport 报告。
                                                        在处理时有错误发生:
     python-decorator
     python-numpy
     python-pil:amd64
     python-xlib
    E: Sub-process /usr/bin/dpkg returned an error code (1)

原因

ConfigParser是python2的包,python3将它改成了configparser,因此找不到。
而出现这个错误的原因是之前把python的软链接指向了python 3.5,本来默认是指向2.7。系统某些程序使用了python指令,因python3不兼容导致异常。

解决

重新建立符号链接,指向python2.7:

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

在文件夹查看应该得到:

如果命令无效,可以先删除原有链接:

sudo rm -rf /usr/bin/python

再重新建立链接。

设置默认python3

另外,如果想执行python时默认执行python3,可以使用alias。打开文件

gedit ~/.bashrc

在后面加一行,保存:

alias python=python3

执行

source ~/.bash_aliases

或者

source ~/.bashrc

结果:

$ python --version
Python 3.5.2

猜你喜欢

转载自blog.csdn.net/xiang_freedom/article/details/78415352
今日推荐