从 17.10 升级到 18.04 失败 - “没有名为 DistUpgrade.DistUpgradeVersion 的模块”

从 17.10 升级到 18.04 失败 - “没有名为 DistUpgrade.DistUpgradeVersion 的模块”

在尝试将我的 Ubuntu 虚拟服务器从 17.10 升级到 18.04.2 LTS 时:

sudo do-release-upgrade

输出结果如下:

Traceback (most recent call last):
  File "/usr/bin/do-release-upgrade", line 8, in <module>
    from DistUpgrade.DistUpgradeVersion import VERSION
ImportError: No module named DistUpgrade.DistUpgradeVersion

这是该 Python 脚本中的第一个导入,因此我很担心我忽略了有关 Python 安装的一些相当明显的问题。我使用以下命令检查了 do-resease-upgrade 版本中使用的 Python 链接:

head -n1 /usr/bin/do-release-upgrade
#!/usr/bin/python3

验证 do-release-upgrade 是否指向正确的链接:

sudo which do-release-upgrade
/usr/bin/do-release-upgrade

我已经验证在 /usr/bin/ 中有一个指向 python3 的符号链接

lrwxrwxrwx  1 root   root          18 Mar 22 12:34 python3 -> /usr/bin/python3.6
-rwxr-xr-x  2 root   root     4568920 Oct  3  2017 python3.6

需要注意的是,重新安装 python3 不会改变结果。我最近没有对 python 进行其他更改。

如果我在 python 中运行该命令,/usr/bin/python3.6生成的错误将从 ImportError 更改为 ModuleNotFound,如下所示:

>>> from DistUpgrade.DistUpgradeVersion import VERSION
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'DistUpgrade'

我对此不够熟悉,不知道是否应该搜索要安装的 DistUpgrade 模块,或者是否存在其他问题。

重新配置包sudo dpkg --configure -a也不能解决问题。

我确实看过askubuntu.com/q/565107/301745但没有遇到用户遇到的其他问题。此外,我也没有像该用户一样尝试删除任何版本的 Python。(不过,在我的故障排除过程中,我确实重新安装了 Python3,但行为没有发生变化。)

先感谢您。

答案1

已解决:此问题是 Python 版本问题,请尝试安装 Python 3.6,这是导入包的最低要求。

如果失败了,不要担心,继续执行所有步骤:

sudo add-apt-repository ppa:jonathonf/python-3.6

然后通过命令检查更新并安装 Python 3.6:

sudo apt-get update

sudo apt-get install python3.6

现在您有三个 Python 版本,使用 python 命令来获取 2.7 版本,使用 python3 来获取 3.5 版本,或者使用 python3.6 来获取 3.6.1 版本

要使 python3 使用新安装的 python 3.6 而不是默认的 3.5 版本,请运行以下 2 个命令

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

最后,通过命令在python3的两个python版本之间切换:

sudo update-alternatives --config python3

选择3.6版本后:

python3 -V

更新:由于这个错误,gnome-terminal 在第 3 步之后无法启动,解决方法是运行以下命令来重新创建符号链接:

sudo rm /usr/bin/python3

sudo ln -s python3.5 /usr/bin/python3

检查此资源:http://ubuntuhandbook.org/index.php/2017/07/install-python-3-6-1-in-ubuntu-16-04-lts/

现在如果您遇到另一个类似的错误:

Checking for a new Ubuntu release
Please install all available updates for your release before upgrading.

修复如果您遇到上述错误,请运行下面的每个命令。

sudo apt-get update

sudo apt-get upgrade -y

sudo apt-get dist-upgrade

sudo do-release-upgrade

资源:https://www.liquidweb.com/kb/troubleshooting-please-install-available-updates-release-upgrading/ 希望它也能帮助并解决您的问题。

答案2

我遇到了同样的问题,因为我禁用了snapd.service。使用以下命令检查 snapd.service: sudo systemctl status snapd.service

如果处于非活动状态:

● snapd.service - Snap Daemon 已加载:已加载(/lib/systemd/system/snapd.service;已禁用;供应商预设:已启用) 活动:未活动(已停止)

启动服务然后sudo systemctl start snapd.service开始发布升级

相关内容