Python在将某些方面升级到3.x后崩溃



我想我做的最后一件事是使用更新替代方案,但我对python做了很多小的更改,所以我不完全确定。然而,我当时无法及时更新我的系统。我收到了如下消息:

sh:1:/usr/lib/cnf-update-db:权限被拒绝E: 执行脚本时出现问题APT::Update::Post Invoke Success。。。。

我已经尝试了所有涉及dpkg/-configure等的在线修复程序,但它们也会由于权限故障而导致失败。

我已经了解到,如果你试图强制卸载所有与python相关的内容来解决这个问题,你很可能会把你的整个Ubuntu安装

这群人怎么说?

部分信贷:如何在不破坏apt的情况下更新Python3的替代方案?

以下是我为解决这个问题而走的路:-(

sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python3
Value: /usr/bin/python3
Alternative: /usr/bin/Python-3.7.0/python
Priority: 1
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2
By default, the HIGHEST number (10) as the default python distro for the OS (but this can be overridden)

然后运行:

# to get rid of one than I last installed that started my problems 
command: sudo update-alternatives --remove python /usr/bin/Python-3.7.0/python
reply  : update-alternatives: warning: forcing reinstallation of alternative /usr/bin/python3 because link group python is broken

然后再次运行此操作,以获得更新替代中包含的内容的新视图

sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python3
Value: /usr/bin/python3
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2

奇妙的问题蟒蛇删除。但我注意到2.7不在组合中,我认为这是我20.04 xfce发行版中的默认版本,所以运行

你必须提供一个优先级编号,所以我给了它12的新"高",这应该使操作系统的优先级

Command: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 12
Replied: update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode

上面的内容似乎表明它默认了2.7。让我们看看sudo更新备选方案--查询python

的确如此!

sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: auto
Best: /usr/bin/python2.7
Value: /usr/bin/python2.7
Alternative: /usr/bin/python2.7
Priority: 12
Alternative: /usr/bin/python3
Priority: 10
Alternative: /usr/bin/python3.8
Priority: 2
Ran: python -V
Replied: Python 2.7.18
Command: sudo update-alternatives --config python
Reply: 
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python2.7   12        auto mode
1            /usr/bin/python2.7   12        manual mode
2            /usr/bin/python3     10        manual mode
3            /usr/bin/python3.8   2         manual mode
Press <enter> to keep the current choice[*], or type selection number: 

这太棒了。允许我在它们之间切换并测试结果

在这一点上,我对Python的配置有了更好的理解,但apt-get-update仍然被使用。。。

所以更多的阅读引导我来到这里。

cd /etc/alternatives
ls -l python*
lrwxrwxrwx 1 root root 18 Jan 24 13:54 python -> /usr/bin/python2.7
lrwxrwxrwx 1 root root 18 Jan 24 13:59 python3 -> /usr/local/bin/python3.7

第二个看起来不稳定。指向/usr/local而不是/usr/bin,因此不是全局的。所以我用下面的将它链接到/usr/bin中的3.7

sudo rm /etc/alternatives/python3
sudo ln -s /usr/bin/python3.7 /etc/alternatives/python3

然后又尝试了一次

sudo apt-get update 
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Get:2 https://pkgs.tailscale.com/stable/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://ppa.launchpad.net/ansible/ansible/ubuntu focal InRelease
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Hit:7 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease
Fetched 228 kB in 2s (112 kB/s)
Reading package lists... Done

解决!!!!!

这是一个如此关键的问题和最终的解决方案,我创建了这个帖子,这样其他人就可以在大海捞针的中找到这个针

相关内容

  • 没有找到相关文章

最新更新