[英]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。
换句话说,最简单的解决方案可能是只在.bashrc
为python
定义一个别名。
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 存储库并再次更新 apt 索引:
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.