在 Ubuntu 系统上更新 Python

在 Ubuntu 系统上更新 Python

我想更新 Linux 机器上的 Python 版本,但我知道的唯一方法是卸载当前版本并安装新版本。我的系统已经是最新的(我昨天更新了)。我想知道是否有办法从命令行更新特定程序,例如sudo apt-get update <program-name>。我知道这个命令不存在,但我希望有等效的东西。

答案1

正如其他人已经指出的那样,baresudo apt-get install package将安装最新的可用版本,并在需要时替换旧版本。

但对于某些软件(例如 Python),情况有所不同。一些主要的、差异很大且不兼容的版本会他们自己的包。例如,Python 2.6Python 2.7Python 3.1全部位于 Ubuntu 上的单独软件包中。

尤为重要的是,Ubuntu 的政策之一是广泛使用 Python 编写终端用户软件。因此,事实上,系统用 Python 编写。目前,代码在 Python 2.6 上运行 — 因此此版本是安装时的默认版本;代码惯于很容易在 Python 2.7 上运行 — 因为存在不兼容性。要将系统切换到 Python 2.7,需要完成一项工作,包括更新和重新测试所有脚本。这并非易事;也就是说,您不能只是将系统“切换”到 Python 2.7 并删除旧版本。

但是。如果你不在乎系统的花哨配置,只需要更新的 Python — 那就没有障碍了。sudo apt-get install python3勇敢地去为 3.x Python 编写代码吧;只需记住python3使用#!/usr/bin/env python3shebang line 启动你的脚本。


更新:我不断看到这个被点赞;请注意这是一个九年前的答案, 事情变了。


下一步要学什么

超级用户角度(不是 Python 开发人员),我建议学习使用以下东西:

  • pip// pip3python3 -m pip这是npmPython 的。快速提示:尝试pip3 install --user howdoi(可能需要apt install python3-setuptools python3-pip一次,才能起作用)。然后例如howdoi --all compile python3 ubuntu

  • virtualenv工具。它是 100% 面向开发人员的,但您可能需要使用它(可能在一些包装器下面,例如tox)来处理人们的源包。Ruby或
    Cabalbundler沙箱可能是熟悉的类似物。

  • conda工具 — — 是一个完全独立的 Python 包存储库和安装程序(想想:PyPi 的分支)。

巨大的pip2020 年 Python 生态系统中出现了各种各样的工具。在深入了解之前,至少要让自己熟悉一下。

基本陷阱

对于勇敢但不谨慎的人来说,尝试在 Ubuntu 上手动设置较新的 CPython 时会遇到一些经典的陷阱。

  • /usr别管;您可以查看但不能触摸。将其留给dpkg,以免造成混淆。您可以/usr/local随意使用全部内容:

    sudo chown -R `whoami` /usr/local
    pip3 install --prefix=/usr/local pydf
    
  • 从源代码编译 CPython在网上有很好的解释;只是不要忘记你的/usr/local前缀。这是手动测试 CPython 本身的补丁和/或预发布版本(那些 alpha-、rc- 版本)的最佳方式。要擦除构建的工件,您只需rm -rf /usr/local/*; sudo ldconfig.

  • 查找 PPA也是不错的选择;请记住,PPA 只是其他人的私人构建。寻找运行 CI/CD 的可靠 PPA。

答案2

sudo apt-get install python 3.3.3

这是针对python(3.3.3)的,对于不同的版本应该使用相应的版本号。

答案3

sudo apt-get install python3.6

这会在 Linux 中与 Python 2 一起安装 Python 3。要访问 Python 3,请在打开终端后输入。

python3

答案4

来自我们的姊妹网站:https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

每个命令都是通过安装进行更新的,在许多情况下应该可以正常工作,但在特定情况下可能不是您想要的。

如果您只想升级特定的软件包并且仅当它已安装时,请使用以下命令:

sudo apt-get install --only-upgrade packagename

相关内容