【问题标题】:Unable to apt-get install packages E: Sub-process /usr/bin/dpkg returned an error code (1)Unable to apt-get install packages E: Sub-process /usr/bin/dpkg returned an error code (1)
【发布时间】:2016-07-21 23:23:00
【问题描述】:

每当我尝试使用 apt-get install 安装软件包时,都会遇到以下错误:

After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up python-support (1.0.15) ...
  File "/usr/sbin/update-python-modules", line 52
    print x
          ^
SyntaxError: Missing parentheses in call to 'print'
dpkg: error processing package python-support (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up mercurial-common (3.1.2-2+deb8u1) ...
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: error processing package mercurial-common (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mercurial:
 mercurial depends on mercurial-common (= 3.1.2-2+deb8u1); however:
  Package mercurial-common is not configured yet.

dpkg: error processing package mercurial (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python-support
 mercurial-common
 mercurial
E: Sub-process /usr/bin/dpkg returned an error code (1)

我目前在我的机器上使用 Python 3.4.2。

【问题讨论】:

    标签: python linux python-3.x mercurial debian


    【解决方案1】:

    您是否将默认 python 从 Python2 更改为 Python3?目前,Debian 带有default Python2 installation。用 Python 编写的系统脚本(例如 /usr/sbin/update-python-modules)期望 python 运行 Python2 的一个版本。将默认 python 更改为 Python3 将导致各种脚本中断。如果您确实将 Python3 设为默认值,则解决当前问题的方法是恢复并再次将 Python2 设为默认值。


    在Python2中print是一个语句,所以print x是有效的。

    在 Python3 中,print 是一个函数,因此调用该函数需要将参数包装在括号内。所以print x必须改成print(x)print x 提出SyntaxError

      File "/usr/sbin/update-python-modules", line 52
        print x
              ^
    SyntaxError: Missing parentheses in call to 'print'
    

    不用更改系统默认的python,而是使用pyenv or virtualenv来管理/切换多个版本的Python。

    【讨论】:

    • 另外:不要指望 mercurial 可以与 python3 一起工作,它严格要求 python2。在撰写本文时,Python3 还不支持将 mercurial 移植到 python3 所需的一切。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2022-12-27
    • 1970-01-01
    • 2015-04-11
    • 2020-04-26
    相关资源
    最近更新 更多