Ubuntu下apt-get安装软件包出现大量Python语法错误求助
问题根源
报错里的raise DistutilsError(str(e)) from e是Python 3.x才支持的异常链语法,Python 2.7完全不识别。你的系统默认python指向Python2.7,但my_package的安装脚本在Setting up阶段调用了默认python去处理Python3.9的代码(从报错路径./ext/python3.9/lib/python3.9/site-packages能看出),直接触发语法错误。
解决方法
方法1:临时切换全局默认Python为Python3(安装后可恢复)
- 备份当前的Python软链接:
sudo mv /usr/bin/python /usr/bin/python.bak
- 创建指向Python3的新软链接:
sudo ln -s /usr/bin/python3 /usr/bin/python
- 修复并重新完成安装:
sudo apt-get install -f -y my_package
- 安装完成后,若需恢复原默认Python(指向2.7),执行:
sudo mv /usr/bin/python.bak /usr/bin/python
方法2:指定安装时使用Python3(不修改全局默认)
直接通过环境变量指定安装脚本使用Python3,无需改动全局设置:
sudo PYTHON=/usr/bin/python3 apt-get install -f -y my_package
方法3:安装适配Python2的包版本(如果必须保留Python2默认)
如果你的系统依赖Python2作为默认环境,先检查是否有专门适配Python2的my_package版本:
apt-cache search my_package
若搜索结果中有类似my_package-python2的包,安装该版本即可。
验证
安装完成后,可执行以下命令确认:
- 检查my_package状态:
dpkg -l my_package - 若涉及Python运行,确认调用的Python版本是否正确:
my_package相关命令 --version(或查看其启动脚本里的Python路径)
内容的提问来源于stack exchange,提问作者instant501
相关产品推荐
相关产品推荐

