ModuleNotFoundError: 没有名为 'uaclient.entitlements' dpkg 的模块: 错误处理包 ubuntu-advantage-tools (--config



每当我尝试sudo apt-get升级或尝试安装任何其他包时,我都会收到上述错误。有什么办法解决吗??使用ubuntu 16.04

Removing python3-distro-info (0.14ubuntu0.2) ...
Setting up ubuntu-advantage-tools (27.0~16.04.1) ...
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'uaclient.entitlements'
dpkg: error processing package ubuntu-advantage-tools (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
ubuntu-advantage-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

您应该使用默认的python命令安装opcuaopcua-client

python -m pip install --upgrade opcua
python -m pip install --upgrade opcua-client

我有同样的问题,并试图解决,然后它对我有效。

我的环境:

  • 操作系统:ubuntu 18.04 LTS
  • python版本:3.6.9(系统默认(,手动安装3.8.7

当我安装python 3.8时,系统python路径已经链接到python 3.8,所以任何使用python的进程都会调用python 3.8并使用pip3.8站点包,而不是使用系统dist包(python 3.6(。但python 3.8 uaclinet(通过pip安装(与dist包中的uaclinet不同(ubuntu优势工具提供(。然后我使用apt升级

設定 ubuntu-advantage-tools (27.0.2~18.04.1) ...
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'uaclient.entitlements'
dpkg: error processing package ubuntu-advantage-tools (--configure):
installed ubuntu-advantage-tools package post-installation script subprocess returned error exit status 1
處理時發生錯誤:
ubuntu-advantage-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

因此,我将uaclinet(在dist包中(复制到python 3.8站点包中,并再次运行升级,然后它就可以工作了(可能存在兼容性问题(

設定 ubuntu-advantage-tools (27.0.2~18.04.1) ...
W: APT had planned for dpkg to do more than it reported back (0 vs 4).
Affected packages: ubuntu-advantage-tools:amd64

我认为如果你使用系统python,你可以通过Jan Wilamowski、使用评论

这个问题出现在我从16.04升级到Ubuntu 18.04之后。

我用python-m pip install和pip3 install更新了opcua和opcua客户端,以在python3包中更新它,但问题仍然存在
我在/usr/bin/python3(3.6版(中安装了系统python3,在/usr/local/bin/python3。我不知道为什么,但uaclient.entitlements模块可以用/usr/bin/python3正确加载,但不能用/usr/local/bin/python3 加载

没有更改uaclient包的位置,以下操作对我有效:

我使用更新选项来选择默认情况下将使用的python3,要么是/usr/bin/python3.6中的系统python3.,要么是安装在/usr/local/bin/python3.8中的更新后的python2.如下所述:https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu

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

然后,通过运行选择/usr/bin/python3.6作为默认值

sudo update-alternatives --config python3

符号链接被创建为/etc/alternates/python3,指向所选的默认python3。

由于我设置备选方案的方式导致/usr/local/bin/python3.8成为自动默认的python3,因此符号链接/usr/bin/python3->蟒蛇3.6被移除。但是通过/usr/bin/python3使用系统python的依赖项/函数仍然需要这个符号链接,所以我添加了符号链接:

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

通过将/usr/bin/python3.6设置为默认值,而不是/usr/local/bin/python3.8,可以正确加载uaclient.entitlements。这对我安装和升级发生uaclient.entitlements ModuleNotFoundError的包起到了作用。安装完成后,只需切换回使用/usr/local/bin/python3.8即可。但我认为,现在ubuntu优势工具已经通过这个错误进行了配置,似乎不再需要切换到/usr/bin/python3.6作为安装包的默认设置。

中的答案https://askubuntu.com/questions/1336425/no-module-named-uaclient-during-sudo-apt-upgrade-ubuntu-16-04基本上,我手动修改了/var/lib/dpkg/info/ubuntu-advantage-tools.postinst和/var/lib/dpkg/info/ubuntu-dvantage-tools.prerm中的安装后和预删除脚本,并用完整的路径/usr/bin/python3.5替换python3,然后"apt-get升级"没有像以前那样失败。

如果你不打算使用ubuntu优势工具,那么

sudo dpkg --remove --force-remove-reinstreq ubuntu-advantage-tools

但即使是tat对我来说也失败了…我不得不

sudo rm /var/lib/dpkg/info/ubuntu-advantage-tools.prerm

因为此脚本阻止卸载

我已尝试安装:

python -m pip install --upgrade opcua
python -m pip install --upgrade opcua-client

但即使这样,我在第二个客户端安装时也失败了

终于在大约6个月后,我可以在没有错误报告的情况下进行ubuntu更新。

相关内容

  • 没有找到相关文章

最新更新