ubuntu下切换python版本(python2与python3之间的切换,python3与python3之间的切换)

2023-05-16

目录

  • 1 问题
  • 2 重装python3.8
  • 3 配置 python3.8 为系统默认 python3
  • 4 切换回系统自带的python3

1 问题

在这里插入图片描述
有点无语,python3.8明明下载安装好。但是设置python默认版本为python3.8,最后python3 --version出来的还是Python 3.6.9。

以下是设置python默认版本的过程:
设置

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

列出可用的 Python 替代版本:

sudo update-alternatives --list python

在这里插入图片描述
用以下命令随时在列出的 Python 替代版本中任意切换:

sudo update-alternatives --config python

输入2:
在这里插入图片描述

python --version

最后并没有切换到python3.8:
在这里插入图片描述

2 重装python3.8

  1. 更新软件包列表并安装构建Python所需的软件包:
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
  1. 使用wget从Python下载页面下载最新版本的源代码,或者访问 https://www.python.org/ 网站下载:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

在这里插入图片描述

  1. 下载完成后,解压缩下载的文件:
tar -xf Python-3.8.0.tgz

在这里插入图片描述

  1. 切换到Python源目录并执行configure脚本,该脚本执行许多检查以确保系统上的所有依赖项都存在:
cd Python-3.8.0

./configure --enable-optimizations

其中,--enable-optimizations通过运行多个测试来优化Python二进制文件,这会使构建过程变慢。

  1. 启动Python 3.8构建过程:
make -j8
  1. 构建过程完成后,输入以下命令安装Python二进制文件:
sudo make altinstall

不要使用标准的make install,因为它将覆盖默认的系统python3二进制文件。

  1. Python 3.8已安装并准备使用,通过运行以下命令进行验证:
python3.8 --version

输出应显示Python版本:

Python 3.8.0

3 配置 python3.8 为系统默认 python3

修改默认 python3 会导致打不开 Terminal 等各种问题,建议不要修改。解决方法见 Ubuntu16.04TLS 中终端(Terminal)无法打开的解决办法

xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ which python3.8
/usr/local/bin/python3.8
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
[sudo] xzx 的密码: 
update-alternatives: 使用 /usr/bin/python3.8 来在自动模式中提供 /usr/bin/python3 (python3)
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ which python3.6
/usr/bin/python3.6
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ which python3.6.9
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
update-alternatives: 使用 /usr/bin/python3.6 来在自动模式中提供 /usr/bin/python3 (python3)
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ sudo update-alternatives --config python3
有 2 个候选项可用于替换 python3 (提供 /usr/bin/python3)。

  选择       路径              优先级  状态
------------------------------------------------------------
* 0            /usr/bin/python3.6   2         自动模式
  1            /usr/bin/python3.6   2         手动模式
  2            /usr/bin/python3.8   1         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2
update-alternatives: 使用 /usr/bin/python3.8 来在手动模式中提供 /usr/bin/python3 (python3)
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ python3 -V
Python 3.8.0
xzx@xzx-HP-Z2-Mini-G4-Workstation:~$ 

在这里插入图片描述

4 切换回系统自带的python3

sudo ln -sf /usr/bin/python3.6 /usr/local/bin/python3
sudo ln -sf /usr/bin/python3.6 /usr/bin/python3

也可以参考上面的方法弄。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu下切换python版本(python2与python3之间的切换,python3与python3之间的切换) 的相关文章

  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • 使用 matplotlib 从“列表列表”绘制 3D 曲面

    我已经搜索了一些 虽然我可以找到许多有用的网格网格示例 但没有一个清楚地表明我如何将列表列表中的数据转换为可接受的形式 以适应我所讨论的各种方式 当谈到 numpy matplotlib 以及我所看到的建议的术语和步骤顺序时 我有点迷失 我
  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • 如何检查python xlrd库中的excel文件是否有效

    有什么办法与xlrd库来检查您使用的文件是否是有效的 Excel 文件 我知道还有其他库可以检查文件头 我可以使用文件扩展名检查 但为了多平台性我想知道是否有任何我可以使用的功能xlrd库本身在尝试打开文件时可能会返回类似 false 的内
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • Keras:如何保存模型或权重?

    如果这个问题看起来很简单 我很抱歉 但是阅读 Keras 保存和恢复帮助页面 https www tensorflow org beta tutorials keras save and restore models https www t
  • 在 Django OAuth Toolkit 中安全创建新应用程序

    如何将 IsAdminUser 权限添加到 Django OAuth Toolkit 中的 o applications 视图 REST FRAMEWORK DEFAULT PERMISSION CLASSES rest framework
  • 从扫描文档中提取行表 opencv python

    我想从扫描的表中提取信息并将其存储为 csv 现在我的表提取算法执行以下步骤 应用倾斜校正 应用高斯滤波器进行去噪 使用 Otsu 阈值进行二值化 进行形态学开局 Canny 边缘检测 进行霍夫变换以获得表格行 去除重复行 10像素范围内相
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • python 线程安全可变对象复制

    Is 蟒蛇的copy http docs python org 2 library copy html模块线程安全吗 如果不是 我应该如何在 python 中以线程安全的方式复制 deepcopy 可变对象 蟒蛇的GIL http en w

随机推荐