问题描述
我想更新Linux机器上的Python版本,但是我知道怎么做的唯一方法是卸载当前版本并安装新版本。我的系统已经是最新的(我昨天更新了)。我想知道是否可以从命令行更新特定程序,例如sudo apt-get update <program-name>
。我知道此命令不存在,但我希望有等效的命令。
最佳方案
正如其他人已经指出的那样,裸机sudo apt-get install package
将安装最新的可用版本,并在需要时替换较旧的版本。
但是对于某些软件(在Python中),情况有所不同。 incompatibly-different和incompatibly-different的一些主要版本都有自己的软件包。例如,Python 2.6,Python 2.7,Python 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