当前位置: 首页>>技术教程>>正文


在Ubuntu系统上更新Python

, ,

问题描述

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

最佳方案

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

但是对于某些软件(在Python中),情况有所不同。 incompatibly-different和incompatibly-different的一些主要版本都有自己的软件包。例如,Python 2.6Python 2.7Python 3.1都位于Ubuntu上的单独软件包中。

特别重要的是,Ubuntu策略之一就是广泛使用Python编写end-user软件。因此,实际上,系统的很大一部分是用Python编写的。目前,该代码在Python 2.6上运行-因此该版本是安装时的默认版本;而且该代码也不会轻易在Python 2.7上运行-因为存在不兼容性。要将系统切换到Python 2.7,需要完成一些工作,包括更新和re-testing所有脚本。这不容易做到;也就是说,您不能仅将系统”switch”升级至Python 2.7并删除旧版本。

但。如果您不关心系统的花哨功能,而只需要更新的Python,那就没有障碍。 Go和sudo apt-get install python3并勇敢地为3.x Python编写代码;只需记住使用python3启动脚本并使用#!/usr/bin/env python3 shebang行即可。


Upd:我一直看到这个被否决;请注意,这是一个9岁的答案,情况已经改变。


接下来要学什么

从超级用户的角度(不是Python开发人员的角度),我建议接下来学习使用:

  • pip /pip3 /python3 -m pip —这是Python的npm。快速提示:尝试使用pip3 install --user howdoi(可能需要先使用apt install python3-setuptools python3-pip,然后才能运行)

  • virtualenv工具。它是100%developer-oriented,但是您可能需要使用它(也许在一些包装下,例如tox)来与人们的源代码包一起使用。 Ruby的bundler或Cabal沙箱可能是熟悉的类似物。

  • conda工具-这是一个完全独立的python软件包存储库和安装程序(认为:PyPi的fork)。

到2020年,Python生态系统中将会有humongous种工具。至少,在深入研究之前,请先熟悉pip

基本陷阱

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

  • 不理会/usr;你可以看,但不要碰。将其保留为dpkg,省去一些混乱。您可以使用整个/usr/local

    sudo chown -R `whoami` /usr/local
    pip3 install --prefix=/usr/local pydf
    
  • 在网上从源代码编译CPython是well-explained;只是不要忘记您的/usr/local前缀。这是手动测试CPython本身的补丁程序和/或预发行版本(那些alpha-,rc-builds)的最佳方法。要擦除生成的工件,您只需rm -rf /usr/local/*; sudo ldconfig即可。

  • 寻找PPA也是不错的选择。请记住,PPA只是别人的私有版本。寻找运行CI /CD的可靠PPA。

次佳方案

sudo apt-get install python 3.3.3

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

第三种方案

sudo apt-get install python3.6

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

python3

第四种方案

您很快就想到了sudo apt-get update之类的命令(这是实际命令,但没有执行您想要的操作。)

要升级Python以及已安装的所有其他产品,只需执行以下命令:

sudo apt-get upgrade

第五种方案

从我们的姐妹站点:https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

这些命令updates-by-installing中的每一个在许多情况下都应该可以正常工作,但在特定情况下可能并不是您所需要的。

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

sudo apt-get install --only-upgrade packagename

第六种方案

如果您只想升级2.7.11+ t0 2.7.12等较小版本的python软件包,请执行sudo apt-get install python2.7

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11238.html,未经允许,请勿转载。