【问题标题】:Should i remove Python 3.6 while installing Python 3.8 or newer?我应该在安装 Python 3.8 或更新版本时删除 Python 3.6 吗?
【发布时间】:2020-10-25 09:17:43
【问题描述】:

我尝试安装某个 python 模块,该模块至少需要 python 3.6 才能正常工作,所以我使用python --version 检查了我的版本,它给了我Python 2.7.17 的输出,然后使用python3 --version 给我Python 3.6.9。现在,我知道我已经安装了 Python 3.8,因为我在检查版本之前运行了 apt install python3.8

如果有人想知道我的系统正在运行什么;我目前正在运行 Elementary OS 5.1.7 Hera。

编辑: (IDK 使用什么术语,我想说我已经完成了答案,我不喜欢任何答案。) 经过一段时间的思考,我决定不卸载 3.6 版本,因为它可能有版本特定的模块,如果删除可能会导致其他已安装的程序中断。
由于我只是在大学工作中使用 Linux,所以安装多个版本也没关系。

对不起,我可能犯了任何错误,我从来不擅长这种事情。

【问题讨论】:

  • 一般来说,如果有可能是系统的默认 Python(或默认 Python 3),请不要删除 Linux 上的 Python 安装。同样,不要将默认 Python 的符号链接替换为不同版本的符号链接。不同的 Python 安装可以在 Linux 上完美共存,只要您满足在调用它们时指定版本,例如python3.8 myscript.py。乱用系统 Python 会弄乱你的机器。
  • @snakecharmerb 专门替换 python3 符号链接的一个特殊问题,尤其是在 python3 版本 >= 最小的情况下?这正是针对 SO 上的问题 43743509、Unix 和 Linux 上的 410579 和其他地方提出的一些解决方案。据我所知,完全有效(实际上是由 update-alternatives 完成的,不是吗?)。

标签: python-3.x linux elementary


【解决方案1】:

使用conda 安装和管理不同版本的 Python(或许多其他软件)。在单独的 conda 环境中安装不同的 Python 版本。例如:

查找可用的 python 版本:

conda search python

输出(截至撰写本文时,我预计未来最新的 Python 版本会更高):

Loading channels: done
# Name                       Version           Build  Channel             
python                         1.0.1               0  conda-forge         
python                           1.2               0  conda-forge         
...
     
python                         3.9.0      h88f2d9e_1  pkgs/main           
python                         3.9.0 ha017127_4_cpython  conda-forge         

在不同的环境中安装您需要的 Python 版本。在这里,在名为python39的环境中安装Python 3.9.0:

conda create --name python39 python=3.9.0

切换环境很容易:

conda activate python39
# python is now 3.9.0
conda deactivate
# back to the default python

或(现已弃用):

source activate python39
source deactivate

另请参阅:

conda docs: Managing environments

【讨论】:

  • 我将 Windows 用作我的常规工作站,因此我猜我的问题“设置多个虚拟环境”不是正确答案。从我的角度来看,问题很简单,我应该还是不应该删除 python3.6,因为我的系统上安装了 python3.8。尽管如此,我还是感谢您抽出宝贵的时间来编写此说明。
【解决方案2】:

这个问题更适合Unix & Linux

Python 安装(更一般地说,软件的版本化安装)使用版本号在 Linux 上共存。您可以使用python3.8 命令运行Python 3.8(或者,找到您安装它的位置并从那里运行/将位置添加到PATH 环境变量以直接运行)。

同样,对于每个 python 版本,您可以安装其自己的包管理器(例如,通过python3.8 -m pip install pip 安装 pip3.8)并使用它来安装该 python 版本的包。 (由于不同的项目需要不同的包集,一般的做法是创建一个“虚拟环境”,即每个项目需要的版本的python、pip及其包安装文件夹的单独副本,并在那里安装所需的包-有关更多信息,请参阅例如this excellent answer)。

关于命令python3(通常是/usr/bin/python3)只是一个符号链接,你可以用你喜欢的版本替换它(只要它保持与系统期望的兼容 - 即版本不低于的python3您的内置 python3/python3-minimal,否则您可能会破坏某些东西),例如假设which python3 给你/usr/bin/python3,你可以

sudo rm /usr/bin/python3 #remove existing link
sudo ln /usr/bin/python3.8 /usr/bin/python3 # create a new link to the version of your choice

(虽然更好的选择可能是将其别名为 alias python3='/usr/bin/python3.8' 并将其添加到 ~/.bashrc)。

无论您做什么,都不要卸载 python3-minimal,因为它是系统要求的 - 至少在 Ubuntu 上 - 卸载或更改它可能会破坏系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 2016-01-25
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多