我在 Ubuntu 20.04 上。我想知道为什么即使输入
sudo apt install python 3.9
在终端中,但当我输入时仍然得到python 3.8.10 python3 --version
。 我如何将其改为3.9,以便当我打开IDLE时,我得到的是“IDLE Shell 3.9.6”而不是“IDLE Shell 3.8.10”?
我刚刚开始使用 Ubuntu 和 Linux,可能还不太清楚某些事情。
答案1
不要与系统上安装的 Python 混淆! 这将破坏您在系统上执行任何操作的能力! 包管理、更新,所有东西都有一个 Python 依赖组件,该组件依赖于系统安装的 Python 版本。
那里是一种方法是安装较新的 Python 来使用它并在其上使用 IDLE,但这并不简单,并且依赖于一个外部项目(我与该项目没有任何关系),称为pyenv
在 GitHub 上它允许您并排运行多个 Python 安装,并使用垫片来确保您想要使用的版本可用。
您现在必须在此调整您的存储库设置!我们需要为您已启用的存储库启用 源存储库(deb-src
由中的行定义)。/etc/apt/sources.list
如果你是 GUI 用户,请参阅Ubuntu wiki 上的此页面用于在 GUI 中管理存储库。您需要启用“Ubuntu 软件”选项卡下的“源代码”选项。
如果你使用命令行,你不应该使用 IDLE,但你可以通过命令行编辑源代码,参考Ubuntu 帮助文档中有关 CLI 源管理的此页面。在 中/etc/apt/sources.list
,对于每一行,如果都有deb ...
未注释掉的行,则应该有一个注释掉的deb-src
行与之匹配 - 取消注释该deb-src
行,然后运行sudo apt update
。如果没有 deb-src 行,则对于每个未注释的deb
行,复制该行,但将新条目(重复的行)更改为以 开头deb-src
。
完成此操作后,我们需要设置 pyenv 依赖项。
pyenv
在您的环境中安装。
PyENV 提供了一个自动安装程序 -在 GitHub 上- 以及使用说明。这些说明基本上是这样的:
curl https://pyenv.run | bash
不要以超级用户身份运行此程序,这没有必要!安装运行后,它会指示您在文件中添加几行~/.bashrc
。按照提示操作,然后关闭并重新打开终端。
一旦有了它,请pyenv
通过运行确保其正常工作pyenv versions
并查看列出的内容(它应该只列出“系统”)。
完成后,我们需要为您提供系统安装和构建 Python 所需的构建依赖项!
首先,您需要一些构建依赖项。 这些都适用于每个版本中的各个核心 Python 版本,仅执行与您的版本相关的行。
获取构建依赖项。对于 Python 和 IDLE,您还需要 TK 库,因此我们将首先获取所有依赖项。
对于 18.04:
sudo apt build-dep python3.6 python3-tk
对于 20.04:
sudo apt build-dep python3.7 python3-tk
对于 21.04(以及 21.10 发布后):
sudo apt build-dep python3.9 python3-tk
这将安装很多库。您需要允许安装它们。这将安装 Python 构建和运行所需的所有构建依赖项;这将提取系统安装的 Python 版本的依赖项,但对于 pyenv 将在用户空间中安装的更高版本的 Python 来说应该可以正常工作。
现在,一旦所有这些都安装好了,我们需要设置你的 pyenv 并让它在用户空间安装一个 Python 版本!
假设这向pyenv versions
您显示了输出,那么我们可以继续设置您的内容。
运行pyenv install 3.9.7
。这将从 Python 上游下载 Python 3.9.7 tarball,然后构建、编译并将 Python 3.9.7 安装到 pyenv 的用户空间中。这不会损害您系统上的 Python。
完成后,运行pyenv local 3.9.7
。这将设置垫片,将 Python 可执行文件指向您自己的 shell 的本地版本。 但请确保结果pyenv global
仍然显示“系统” - 否则您将破坏 apt 和其他东西。
现在,您可以获取 IDLE 并开始使用它。
首先,验证pip3
是否位于.pyenv/shims
您的主目录的路径中。这意味着 pyenv 已正确设置。运行pip3 --version
,并确保它显示pip ... from (long path in /home/$USER/.pyenv/...) (python 3.9)
(将“长路径”位替换为实际路径以供参考。
如果一切正常,并且显示“python 3.9”,那么您可以运行pip3 install --upgrade --user idle
并安装 IDLE。然后,您可以从命令行执行idle
并启动 IDLE 编辑器。您必须手动在 GUI 上创建一个快捷方式,才能使其直接作为 GUI 应用程序运行(超出了本文的范围,抱歉!),而无需先在命令行上在 Python 端打开它。但是,这将正确运行 IDLE。
(但是,作为一个 TK 应用程序,它看起来有点……丑……仅供参考。)
在 20.04 系统上进行了测试,但 pyenv 应该可以与更高版本的 Ubuntu 配合良好。
答案2
由于一些人建议不要弄乱系统 Python 安装,因此这里介绍了如何在安装 Python 3.9 后实际运行它,而不是运行默认的 Python 3.8:
只需使用python3.9
命令而不是python3
命令。
要在 IDLE 中使用 Python 3.9,请安装适用于 Python 3.9 的 IDLE:
sudo apt install idle-python3.9
并使用以下命令启动 IDLE:
idle-python3.9