升级 Python 而不破坏主要应用程序

升级 Python 而不破坏主要应用程序

我目前安装了python 3.8。我还单独安装了python 3.11,但默认python3别名指向3.8:

➜  ~ python3 --version
Python 3.8.10
➜  ~ python3.11 --version
Python 3.11.1

我想将系统范围内的默认别名升级到 3.11,因为我正在使用带有 Todoist 插件的 uLauncher,该插件使用了 python 包todoist-api-python

问题:最新版本的软件包至少需要 python 3.9,但至少在我的系统上,默认值python3指向 3.8,这不起作用。因此,每当我安装软件包时,它都会安装一个旧版本,该版本使用旧的、已弃用的 todoist API 版本,这不再起作用。

python3.11据我所知,没有办法告诉 uLauncher 使用已安装的。

因此我尝试使用类似描述的方法将python3别名切换为指向 3.11update-alternatives这里

一开始,当我看到python3 --version打印输出时3.11,我很高兴,但我很快意识到这实际上破坏了主要的东西。uLauncher 应用程序(我尝试进行此 python 升级的原因)不再启动,甚至默认的 gnome-terminal 也不再启动。

因此我又重新python3指向 3.8,以便能够正常使用我的电脑,但原来的问题仍然存在。

我怀疑应用程序依赖于 python 并且期望 3.8,因此当python3指向其他东西时它们会中断。

如何在不破坏主要应用程序的情况下在 Ubuntu 20.04 上升级到 python 3.11?

答案1

如何在不破坏主要应用程序的情况下在 Ubuntu 20.04 上升级到 python 3.11?

不能...明白为什么了吗?

该怎么办?...创建虚拟python3.11环境...然后todoist-api-python像这样安装:

ubuntu@Lenovo:~/test$ mkdir venv3_11 && cd venv3_11
ubuntu@Lenovo:~/test/venv3_11$ python3.11 -m venv env
ubuntu@Lenovo:~/test/venv3_11$ source env/bin/activate
(env) ubuntu@Lenovo:~/test/venv3_11$ pip3 install todoist-api-python
Collecting todoist-api-python
  Using cached todoist_api_python-2.0.2-py3-none-any.whl (11 kB)
Collecting attrs<23.0.0,>=22.0.0
  Using cached attrs-22.2.0-py3-none-any.whl (60 kB)
Collecting requests<3.0.0,>=2.26.0
  Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.6/140.6 KB 369.4 kB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 KB 1.3 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2022.12.7-py3-none-any.whl (155 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.3/155.3 KB 2.9 MB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (196 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.8/196.8 KB 2.4 MB/s eta 0:00:00
Installing collected packages: charset-normalizer, urllib3, idna, certifi, attrs, requests, todoist-api-python
Successfully installed attrs-22.2.0 certifi-2022.12.7 charset-normalizer-3.0.1 idna-3.4 requests-2.28.2 todoist-api-python-2.0.2 urllib3-1.26.14
(env) ubuntu@Lenovo:~/test/venv3_11$ 

然后从现在开始,您要做的就是激活该虚拟环境才能使用该包...虚拟环境中的 Python 会安装包/模块并像系统范围的 Python 一样运行它们,但是在安全的隔离环境中。

相关内容