在chroot环境中切换Python版本时遭遇sudo: unable to allocate pty: No such device错误
在chroot环境中切换Python版本时遭遇sudo: unable to allocate pty: No such device错误
看来你是在通过Live USB修复因Python版本变更搞坏的Ubuntu系统,进入chroot后遇到了pty设备分配失败的问题——这其实是chroot环境的常见小坑,别慌,我来帮你解决:
问题原因
chroot环境默认没有挂载/dev/pts这个伪终端设备目录,而sudo这类需要终端交互的命令依赖它来分配pty,所以才会抛出这个错误。
修复步骤
- 如果你还在chroot环境里,先执行
exit退出回到Live USB的终端 - 挂载
/dev/pts到你的系统挂载点(也就是/mnt):sudo mount --bind /dev/pts /mnt/dev/pts - 重新进入chroot环境:
sudo chroot /mnt/ - 这时候再执行Python版本切换命令就没问题了。不过注意你之前写的命令是要切换到3.6,但你描述里说想改成3.10,得修正一下:
- 先查看系统里已注册的Python替代项:
update-alternatives --list python - 如果
/usr/bin/python3.10在列表里,直接设置:sudo update-alternatives --set python /usr/bin/python3.10 - 如果不在列表里,先把3.10添加到替代项中:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
- 先查看系统里已注册的Python替代项:
完成这些操作后,你的Python版本应该就能正常切换了,退出chroot重启系统后,Terminal之类的功能也应该能恢复正常。
备注:内容来源于stack exchange,提问作者Exquisite Mong
相关产品推荐
相关产品推荐

