ubuntu 24 安装 python3.x 教程

目录

注意事项

一、安装不同 Python 版本

1. 安装依赖

2. 下载 Python 源码

3. 解压并编译安装

二、管理多个 Python 版本

1. 查看已安装的 Python 版本

2. 配置环境变量

3. 使用 update-alternatives​ 管理 Python 版本

三、使用虚拟环境为项目指定特定 Python 版本

1. 使用 venv​ 创建虚拟环境

2. 激活虚拟环境

3. 在虚拟环境中安装依赖

4. 退出虚拟环境

四、注意事项

五、(可选)使用 Poetry 管理虚拟环境并指定 Python 版本(使用 pip 安装 Poetry)

1. 使用 pip 安装 Poetry

2. 在创建虚拟环境时指定 Python 版本

3. 激活虚拟环境

4. 安装依赖

5. 退出虚拟环境

额外提示


注意事项

Ubuntu 24 系统已预装 Python 3.12,在大多数常规场景下,该版本足以满足使用需求,因此通常无需额外安装其他 Python 版本。

需要特别注意的是,Ubuntu 系统的部分核心组件和默认命令依赖于系统自带的 Python 3.12 版本。随意更改系统默认的 Python 版本,极有可能导致这些依赖 Python 的系统命令无法正常运行,严重时甚至会影响系统的稳定性和正常使用。例如,apt​ 作为 Ubuntu 重要的包管理工具,其正常运行依赖于特定版本的 Python 环境,若更改默认 Python 版本与 apt​ 依赖不兼容,就会致使 apt​ 无法正常工作。所以,若非有特殊的项目需求,建议尽量使用系统默认的 Python 3.12 版本;若确实需要使用其他版本,建议通过虚拟环境的方式来实现,避免对系统默认 Python 环境造成影响。

sudo update-alternatives --display python3

我此时已经安装了两个版本的python

一、安装不同 Python 版本

1. 安装依赖

安装编译 Python 所需的依赖库,确保后续编译过程顺利进行。在终端中执行以下命令:

sudo apt update
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
2. 下载 Python 源码

点我去python的版本归档

借助 wget​ 命令从 Python 官方网站下载所需的 Python 版本源码包。为了加快下载速度,可使用国内的镜像源,例如清华大学的 Python 镜像源。

以 Python 3.10.11 为例:

wget https://mirrors.tuna.tsinghua.edu.cn/python/3.10.11/Python-3.10.11.tgz
3. 解压并编译安装

下载完成后,对源码包进行解压,然后进行编译和安装操作。

# 解压文件
tar -zxvf Python-3.10.11.tgz
# 进入解压后的目录
cd Python-3.10.11
# 配置编译选项,--prefix 指定安装路径
./configure --prefix=/usr/local/python3.10.11 --enable-optimizations
# 编译,使用 -j 选项利用多核 CPU 加速编译
make -j$(nproc)
# 安装
sudo make altinstall

这里使用 altinstall​ 而不是 install​,是为了避免覆盖系统默认的 Python 版本。

二、管理多个 Python 版本

1. 查看已安装的 Python 版本

安装完成后,可通过以下命令查看已安装的 Python 版本:

ls /usr/bin | grep python
2. 配置环境变量

为方便使用不同版本的 Python,需要将其可执行文件路径添加到环境变量中。编辑 ~/.bashrc​ 文件:

nano ~/.bashrc

在文件末尾添加以下内容(以 Python 3.10.11 为例):

export PATH="/usr/local/python3.10.11/bin:$PATH"

保存并退出文件,然后使配置生效:

source ~/.bashrc
3. 使用 update-alternatives​ 管理 Python 版本

​update-alternatives​ 是 Ubuntu 系统中用于管理多版本软件的工具。可以通过它来查看和切换系统默认使用的 Python 版本。

  • 查看 Python 3 替代项信息:
sudo update-alternatives --display python3

执行该命令后,会显示系统中所有 Python 3 版本的替代项信息,包括每个版本的路径、优先级等。示例输出如下:

从输出中可以看到每个 Python 版本的优先级,优先级越高,在自动模式下越优先被使用。

  • 手动切换 Python 3 版本:
    如果需要手动切换系统默认使用的 Python 3 版本,可以执行以下命令:
sudo update-alternatives --config python3

执行该命令后,会列出所有可用的 Python 3 版本,你可以输入对应的编号来选择要使用的版本。

三、使用虚拟环境为项目指定特定 Python 版本

1. 使用 venv​ 创建虚拟环境

​venv​ 是 Python 自带的虚拟环境管理工具。以使用 Python 3.10.11 创建虚拟环境为例:

/usr/local/python3.10.11/bin/python3 -m venv my_project_env

​my_project_env​ 是虚拟环境的名称,可根据实际情况修改。

2. 激活虚拟环境
source my_project_env/bin/activate

激活后,终端提示符前会显示虚拟环境的名称。

3. 在虚拟环境中安装依赖

在激活的虚拟环境中,可以使用 pip​ 安装项目所需的依赖:

pip install package_name
4. 退出虚拟环境

当项目使用完毕后,可使用以下命令退出虚拟环境:

deactivate

四、注意事项

  • 避免覆盖系统默认 Python:使用 altinstall​ 安装 Python 版本,防止替换系统默认的 Python 版本,以免影响系统的正常运行。
  • 镜像源的使用:在下载 Python 源码包和使用 pip​ 安装依赖时,可使用国内的镜像源,如清华大学、阿里云等,以提高下载速度。例如,使用清华大学的 pip​ 镜像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
  • 虚拟环境的管理:为每个项目创建独立的虚拟环境,避免不同项目之间的依赖冲突。

通过以上步骤,可以在中国网络环境下方便地安装多个 Python 版本,同时让系统继续使用默认版本,项目使用特定版本。

五、(可选)使用 Poetry 管理虚拟环境并指定 Python 版本(使用 pip 安装 Poetry)

1. 使用 pip 安装 Poetry

Poetry 是一个强大的 Python 依赖管理和打包工具,同时也能出色地管理虚拟环境。你可以使用 pip​ 来安装它,为确保安装的是用户级别的 Poetry,避免权限问题,可执行以下命令:

pip install --user poetry

以下步骤参考你前面有没有执行这个

安装完成后,要将 Poetry 的可执行文件路径添加到环境变量里。编辑 ~/.bashrc​ 文件:

nano ~/.bashrc

在文件末尾添加如下内容:

export PATH="$HOME/.local/bin:$PATH"

保存并退出文件,接着让配置生效:

source ~/.bashrc
2. 在创建虚拟环境时指定 Python 版本

要是你还未用 Poetry 为项目创建过虚拟环境,可使用 poetry env use​ 命令来指定 Python 版本并创建虚拟环境。

步骤

  1. 确认可用的 Python 版本路径
    先找到你想要使用的 Python 版本的可执行文件路径。可以通过 which​ 命令来查看特定版本 Python 的路径,例如查看 Python 3.10 的路径:
which python3

通常输出可能类似 /usr/local/bin/python3.10​ 。

  1. 使用 poetry env use​ 命令创建虚拟环境
    使用上一步获取的 Python 可执行文件路径来创建虚拟环境,示例如下:
poetry env use /usr/local/bin/python3

执行该命令后,Poetry 会依据指定的 Python 版本创建一个新的虚拟环境。

3. 激活虚拟环境

Poetry 会自动为项目创建虚拟环境,你可以使用以下命令激活该虚拟环境:

poetry shell

激活之后,终端提示符前会显示虚拟环境的名称。

4. 安装依赖

在激活的虚拟环境中,你可以使用 Poetry 安装项目所需的依赖。例如,安装 requests​ 库:

poetry add requests

Poetry 会自动管理依赖的版本,并且将其记录在 pyproject.toml​ 和 poetry.lock​ 文件中。

5. 退出虚拟环境

当项目使用完毕后,可使用以下命令退出虚拟环境:

exit

额外提示

  • 更新 Poetry:若要更新已安装的 Poetry 版本,可执行 pip install --user --upgrade poetry​ 命令。
  • 配置镜像源:在国内网络环境下,为提升依赖下载速度,你可以配置 Poetry 使用国内镜像源。例如,配置为阿里云镜像源:
poetry config repositories.aliyun https://mirrors.aliyun.com/pypi/simple/
poetry config installer.max-workers 10
poetry config virtualenvs.in-project true

上述命令依次完成了镜像源的配置、设置最大下载线程数以及让虚拟环境在项目目录内创建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/72201.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/72201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【后端】【django】Django 自带的用户系统与 RBAC 机制

Django 自带的用户系统与 RBAC 机制 Django 自带的用户系统(django.contrib.auth)提供了 身份验证(Authentication) 和 权限管理(Authorization),能够快速实现 用户管理、权限控制、管理员后台…

怎样使用Modbus转Profinet网关连接USB转485模拟从站配置案例

怎样使用Modbus转Profinet网关连接USB转485模拟从站配置案例 Modbus转profinet网关可以将Modbus协议转化为profinet协议,以实现设备之间的数据交互。在实际使用过程中,我们需要使用Modbus协议进行设备通讯,而profinet协议则是用于工业自动化…

5.编译链接和宏**

1. 宏(考察很多)-要求轻松实现宏,很容易出错 #define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或定义宏。 下面是宏的声明方式: #define name(参数列表) 内容 参数列表的左括号必…

如何搭建一个适配微信小程序,h5,app的uni-app项目

在vscode搭建 uni-app 项目(Vue 3 Vite Pinia uView Plus) 一、环境准备 1. 安装 Node.js 确保已安装 Node.js(需≥14版本),可通过以下命令检查版本: node -v2. 安装 VSCode 从 VSCode 官网 下载并…

Kotlin apply 方法的用法和使用场景

Kotlin apply 方法的用法和使用场景 1. 方法简介 apply 是 Kotlin 标准库中的一个扩展函数&#xff0c;用于对对象执行一系列操作&#xff0c;并返回该对象本身。它的语法如下&#xff1a; inline fun <T> T.apply(block: T.() -> Unit): T参数&#xff1a;block 是…

一文解读python高阶功能:匿名函数到魔法方法(__call__)

文章目录 一、python中匿名方法的使用使用示例注意事项总结 二、匿名函数和魔法方法的结合示例&#xff1a;结合 lambda 和 __call__解释更复杂的示例 总结 一、python中匿名方法的使用 在 Python 中&#xff0c;匿名方法是通过 lambda 关键字定义的&#xff0c;通常称为 lamb…

云服务器新手配置内网穿透服务(frp)

首先你得有一个公网服务器&#xff0c;有了它你就可以借助它&#xff0c;将自己电脑进行配置内网穿透&#xff0c;让自己内网电脑也可以异地轻松访问。网上教程较多&#xff0c;特此记录我自己的配置&#xff0c;避免迷路&#xff0c;我这里只记录我自己云服务小白&#xff0c;…

基于STM32的火灾报警设备(阿里云平台)

目录 前言&#xff1a; 一、项目介绍和演示视频 二、硬件需求准备 三、硬件框图 1. 原理图 2. PCB 四、CubeMX配置 五、代码框架 前言&#xff1a; 源代码下载链接&#xff1a; https://download.csdn.net/download/m0_74712453/90474701 需要实物的可以私信博主或者…

学习笔记之车票搜索为什么用Redis而不是ES?

在文章正式开始前&#xff0c;大家打开 12306.cn 搜索一趟列车&#xff0c;根据搜索条件判断&#xff0c;数据搜索技术使用 ElasticSearch 或者其它搜索技术是否合适&#xff1f; 这里我先把答案说下&#xff0c;12306 车票搜索用的是 Redis &#xff0c;而不是大家常用的 Ela…

揭秘AI:机器学习与深度学习的奥秘

文章目录 机器学习与深度学习1. 什么是人工智能&#xff1f;2. 机器学习、深度学习和人工智能又是什么关系&#xff1f;3. 人工智能解决了什么问题&#xff1f;为什么需要人工智能&#xff1f;4. 机器学习、深度学习常用术语1&#xff09;模型2&#xff09;数据集3&#xff09;…

【具体场景实践】使用存储过程查数据全流程+自动调度

文章目录 场景设计场景描述:公司员工管理系统需求1. 创建数据库和表2. 插入测试数据3. 复杂存储过程4. 调用存储过程5. 结果示例6. 细节优化存储过程总结7. 自动定期执行存储过程7.1 启用 MySQL 事件调度器7.2 创建定时任务(每天凌晨 2 点自动执行)7.3 查看和管理事件1️⃣ …

【ubuntu】——wsl中使用windows中的adb

一、引言 在 Windows Subsystem for Linux&#xff08;WSL&#xff09;环境下工作时&#xff0c;有时需要使用 Android Debug Bridge&#xff08;ADB&#xff09;工具与 Android 设备进行交互。通过特定设置&#xff0c;能够在 WSL 中便捷地调用 Windows 系统中已安装的 ADB&a…

Centos离线安装gcc

文章目录 Centos离线安装gcc1. gcc是什么&#xff1f;2. gcc下载地址3. gcc的安装4. 安装结果验证 Centos离线安装gcc 1. gcc是什么&#xff1f; GCC&#xff08;GNU Compiler Collection&#xff09;是 GNU 项目下的开源编译器套件&#xff0c;主要用于将 C、C 等编程语言的源…

JAVA中的多态性以及它在实际编程中的作用

JAVA中的多态性以及它在实际编程中的作用&#xff1f; 在Java中&#xff0c;多态性是指一个对象可以具有多种形态。它主要体现在两个方面&#xff1a;编译时多态和运行时多态。 1.编译时多态 编译时多态通过方法重载&#xff08;Overloading&#xff09;来实现。方法重载是指…

NetLink内核套接字案例分析

一、基础知识 Netlink 是 Linux 系统中一种内核与用户空间通信的高效机制&#xff0c;而 Netlink 消息是这种通信的核心载体。它允许用户态程序&#xff08;如网络配置工具、监控工具&#xff09;与内核子系统&#xff08;如网络协议栈、设备驱动&#xff09;交换数据&#xff…

批量压缩与优化 Excel 文档,减少 Excel 文档大小

当我们在 Excel 文档中插入图片资源的时候&#xff0c;如果我们插入的是原图&#xff0c;可能会导致 Excel 变得非常的大。这非常不利于我们传输或者共享。那么当我们的 Excel 文件非常大的时候&#xff0c;我们就需要对文档做一些压缩或者优化的处理。那有没有什么方法可以实现…

基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)

这是一个结合图像和音频的情绪识别系统&#xff0c;从架构、数据准备、模型实现、训练等。包括数据收集、预处理、模型训练、融合方法、部署优化等全流程。确定完整系统的组成部分&#xff1a;数据收集与处理、模型设计与训练、多模态融合、系统集成、部署优化、用户界面等。详…

保姆级离线TiDB V8+解释

以前学习的时候还是3版本&#xff0c;如今已经是8版本了 https://cn.pingcap.com/product-community/?_gl1ujh2l9_gcl_auMTI3MTI3NTM3NC4xNzM5MjU3ODE2_gaMTYwNzE2NTI4OC4xNzMzOTA1MjUz_ga_3JVXJ41175MTc0MTk1NTc1OC4xMS4xLjE3NDE5NTU3NjIuNTYuMC41NDk4MTMxNTM._ga_CPG2VW1Y4…

spark实验2

一.实验题目 实验所需要求&#xff1a; centos7虚拟机 pyspark spark python3 hadoop分布式 统计历届春晚的节目数目 统计各个类型节目的数量&#xff0c;显示前10名 统计相声类节目历年的数目。 查询每个演员在春晚上表演节目的数量。 统计每年各类节目的数量&#xff0…

学习文章:Spring Boot 中如何使用 `@Async` 实现异步处理

文章目录 学习文章&#xff1a;Spring Boot 中如何使用 Async 实现异步处理 一、什么是 Async&#xff1f;优点&#xff1a; 二、Spring Boot 中启用 Async1. 启用异步支持2. 配置线程池&#xff08;可选&#xff09;3. 使用 Async 注解4. 调用异步方法 三、Async 的进阶用法1.…