lui*_*jie 1 python linux mercurial debian python-3.x
每当我尝试使用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)
Run Code Online (Sandbox Code Playgroud)
我目前在我的机器上使用Python 3.4.2.
您是否将默认python从Python2更改为Python3?目前,Debian附带了默认的Python2安装.用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'
Run Code Online (Sandbox Code Playgroud)
而不是更改系统的默认python,使用pyenv或virtualenv来管理/切换多个版本的Python.