无法apt-get安装包E:子进程/ usr / bin / dpkg返回错误代码(1)

时间:2016-04-02 02:12:35

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

每当我尝试使用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。

1 个答案:

答案 0 :(得分:5)

您是否将默认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'

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