繁体   English   中英

当我们执行 sudo apt-get upgrade python3 时会发生什么

[英]what happens when we do sudo apt-get upgrade python3

我做了:

sudo apt-get upgrade python3

进而:

python3 --version

但仍然显示:Python 3.5.2,我期待 Python 3.7.3,这是迄今为止的最新版本。

为什么以及这里发生了什么?

有人可以详细解释一下吗?

您应该使用的命令是python3而不是python

默认情况下,Ubuntu将Python2用于python命令

许多Linux发行版仍将/usr/bin/python链接到python2而不是python3 如果您只是想随便运行Python 3,请在命令行中键入python3 通常使用pip时,请使用pip3为该解释程序安装软件包。

建议您使用您的sudo功能来更新python符号链接。 太多依赖/usr/bin/python作为python2系统脚本是一个好主意。

如果要对Python解释器进行更细粒度的控制,请使用诸如Anaconda或Miniconda的平台管理器。 与普通的Ubuntu软件包不同,您可以为本地用户安装它,因此不需要root访问权限即可进行维护。 您还可以指向PATH变量,使其首先包含蟒蛇的Anaconda版本,而python不影响系统的其余部分。 这是安装说明的示例: https : //www.digitalocean.com/community/tutorials/how-to-install-anaconda-on-ubuntu-18-04-quickstart

要获得更多的手动控制,请使用virtualenvs。

换句话说,最简单的解决方案可能是只在.bashrcpython定义一个别名。

Python 3是与Python 2不同的软件包。因此,python 2无法升级到python3。

sudo apt-get upgrade python3仅升级python3软件包。 默认情况下, python命令使用python2解释器。 因此,可以在~/.bashrc文件中使用alias python=python3来使用python命令运行python3。

或者,使用以下命令运行它:

python3

这显示了OS中python的默认版本,而您升级了python3。

python --version

要使用python的升级版本,您应该在终端中键入python并单击选项卡以检查可用版本

你会得到这样的

python
python              python2.7           python2-config      python2-pbr            python3.6           python3.6m          python3-config      python3m            python-config       
python2             python2.7-config    python2-jsonschema  python3             python3.6-config    python3.6m-config   python3-jsonschema  python3m-config     

然后使用所需的python版本。

使用sudo apt-get upgrade python3更新 Python 3 不会自动更改符号链接。 换句话说,如果您尝试:

which python3

响应将是:

/usr/bin/python3

如果你尝试:

ls -l /usr/bin/python3

响应将是:

lrwxrwxrwx 1 root root 9 Mar 23  2016 /usr/bin/python3 -> python3.5

这表明您的python3命令仍然指向您的python3.5安装。 但为什么? 理论上如果你升级,小版本应该会上升,对吧?

好吧,显然,apt 中的 Python 并非如此。 当您升级python3.5 ,您正在升级 3.5 中的次要版本,但不会从 3.5 中移出。 换句话说,您将拥有最新的 3.5 版本,但不是最新的 3 版本。

比方说,要安装 Python 3.10,您需要安装一个新版本,还要提到次要版本。 事实证明,您还需要通过其PPA 密钥导入特定于 apt 的存储库。 这个存储库被称为“死蛇”

逐步说明如何操作

首先,更新和升级所有内容,安装software-properties-common包(处理 PPA 密钥),导入 deadsnakes PPA 存储库并再次更新 a​​pt 索引:

sudo apt update && sudo apt upgrade -y
apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

其次,安装您选择的 Python 版本,明确指定次要版本:

sudo apt install python3.10 python3.10-venv python3.10-dev

这不会自动更新符号链接。 您还需要执行:

sudo ln -sf /usr/bin/python3.10 /usr/bin/python3
sudo ln -sf /usr/bin/python3.10-config /usr/bin/python3-config

这应该足够了。 如果你再次运行你的python3 ,你应该更新它:

$ python3
Python 3.10.0a6 (default, Mar  2 2021, 02:01:08) [GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM