在 Ubuntu 系统上更新 Python

eff*_*iss 97 linux-distributions python ubuntu

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

uli*_*tko 79

正如其他人已经指出的那样,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行启动您的脚本。


更新:我一直看到这个被点赞;请注意,这是一个 9 年前的答案,事情发生了变化。


接下来要学什么

超级用户的角度(不是 Python 开发人员的),我建议学习使用的下一件事情:

  • pip/ pip3/ python3 -m pip-这是npm为Python。快速提示:尝试pip3 install --user howdoi(可能需要apt install python3-setuptools python3-pip一次,然后才能奏效)。然后例如,howdoi --all compile python3 ubuntu

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

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

还有堆积如山的各种工具在Python生态系统在2020年最起码,让自己舒服的pip不断深入之前。

基本陷阱

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

  • 离开/usr独自; 你可以看,但你不能碰。把它留给dpkg自己,省去一些困惑。您可以/usr/local随意使用:

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

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

  • 关于幕后工作的详细信息。 (7认同)

小智 20

sudo apt-get install python 3.3.3
Run Code Online (Sandbox Code Playgroud)

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

  • 我认为python和version之间的空间不应该存在。`sudo apt-get install python3.6` 对我有用,但不会以任何方式影响 Python 3.5。 (4认同)
  • 安装后我的python版本号是一样的吗?可能是什么原因? (3认同)

G-O*_*7cd 13

sudo apt-get install python3.6
Run Code Online (Sandbox Code Playgroud)

这会在 linux 中安装 python 3 和 python 2. 要访问 python 3,请在打开终端后输入。

python3
Run Code Online (Sandbox Code Playgroud)

  • 如果我运行它,我会得到`E:无法找到包python3.6 E:找不到任何包通过glob'python3.6' E:找不到任何包通过正则表达式'python3.6'` (7认同)
  • 这会复制另一个答案并且不添加新内容。请不要发布答案,除非您确实有新的贡献。 (3认同)
  • 抱歉,我只是想编写命令来获取新命令。 (3认同)
  • sudo add-apt-repository ppa:deadsnakes/ppa -y &amp;&amp; sudo apt-get update (3认同)

Wuf*_*ers 5

您几乎可以想到这样的命令sudo apt-get update(这是一个实际的命令,但没有按照您的意愿行事。)

要升级 Python 以及您安装的所有其他内容,只需执行以下命令:

sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)