每当我尝试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命令安装opcua
和opcua-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更新。