ubuntu 24 安装 python3.x 教程

news2025/3/17 23:01:38

目录

注意事项

一、安装不同 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.coloradmin.cn/o/2316854.html

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

相关文章

【sql靶场】第13、14、17关-post提交报错注入保姆级教程

目录 【sql靶场】第13、14、17关-post提交报错注入保姆级教程 1.知识回顾 1.报错注入深解 2.报错注入格式 3.使用的函数 4.URL 5.核心组成部分 6.数据编码规范 7.请求方法 2.第十三关 1.测试闭合 2.列数测试 3.测试回显 4.爆出数据库名 5.爆出表名 6.爆出字段 …

93.HarmonyOS NEXT窗口管理基础教程:深入理解WindowSizeManager

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT窗口管理基础教程:深入理解WindowSizeManager 文章目录 HarmonyOS NEXT窗口管理基础教程:深入理解WindowSiz…

Python----数据分析(Pandas一:pandas库介绍,pandas操作文件读取和保存)

一、Pandas库 1.1、概念 Pandas是一个开源的、用于数据处理和分析的Python库,特别适合处理表格类数 据。它建立在NumPy数组之上,提供了高效的数据结构和数据分析工具,使得数据操作变得更加简单、便捷和高效。 Pandas 的目标是成为 Python 数据…

基于WebRTC技术的EasyRTC嵌入式音视频SDK:多平台兼容与性能优化

在当今数字化、智能化的时代背景下,实时音视频通信技术已成为众多领域不可或缺的关键技术。基于WebRTC技术的EasyRTC嵌入式音视频SDK,凭借其在ARM、Linux、Windows、安卓、iOS等多平台上的兼容性,为开发者提供了强大的工具,推动了…

【快速入门】MyBatis

一.基础操作 1.准备工作 1&#xff09;引入依赖 一个是mysql驱动包&#xff0c;一个是mybatis的依赖包&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><vers…

交互式可视化进阶(Plotly Dash构建疫情仪表盘)

这里写目录标题 交互式可视化进阶(Plotly Dash构建疫情仪表盘)1. 引言2. 项目背景与意义3. 数据集生成与介绍4. GPU加速在数据处理中的应用5. 交互式仪表盘构建与Plotly Dash6. PyQt GUI集成与美化7. 工程整体架构8. 部分代码实现9. 代码自查与BUG排查10. 总结与展望交互式可…

如何选择适合您智能家居解决方案的通信协议?

如何选择适合您智能家居解决方案的通信协议&#xff1f; 在开发智能家居产品时&#xff0c;选择合适的通信协议对于设备的高效运行及其在智能家居系统中的互操作性至关重要。市面上协议众多&#xff0c;了解它们的特性并在做决定前考虑各种因素是非常必要的。以下是一些帮助您…

RabbitMQ可靠性进制

文章目录 1.生产者可靠性生产者重连生产者确认小结 2. MQ的可靠性数据持久化LazyQueue小结 3. 消费者的可靠性消费者确认机制消费者失败处理方案业务幂等性唯一消息ID业务判断 兜底方案业务判断 兜底方案 1.生产者可靠性 生产者重连 在某些场景下由于网络波动&#xff0c;可能…

版本控制器Git(5)

文章目录 前言一、理解标签二、创建标签三、操作标签四、多人协作场景一五、多人协作场景二总结 前言 本篇是最后一篇&#xff0c;主要介绍标签管理有关的内容 一、理解标签 标签定义&#xff1a;在Git中&#xff0c;标签&#xff08;tag&#xff09;是对某次提交&#xff08;c…

【数据分析】读取文件

3. 读取指定列 针对只需要读取数据中的某一列或多列的情况&#xff0c;pd.read_csv()函数提供了一个参数&#xff1a;usecols&#xff0c;将包含对应的columns的列表传入该参数即可。 上面&#xff0c;我们学习了读取 "payment" 和 "items_count" 这…

Dify使用部署与应用实践

最近在研究AI Agent&#xff0c;发现大家都在用Dify&#xff0c;但Dify部署起来总是面临各种问题&#xff0c;而且我在部署和应用测试过程中也都遇到了&#xff0c;因此记录如下&#xff0c;供大家参考。Dify总体来说比较灵活&#xff0c;扩展性比较强&#xff0c;适合基于它做…

Java 大视界 -- 基于 Java 的大数据机器学习模型的迁移学习应用与实践(129)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

1.Windows+vscode+cline+MCP配置

文章目录 1.简介与资源2.在windows中安装vscode及Cline插件1. 安装vscode2. 安装Cline插件3. 配置大语言模型3. 配置MCP步骤(windows) 1.简介与资源 MCP官方开源仓库 MCP合集网站 参考视频 2.在windows中安装vscode及Cline插件 1. 安装vscode 2. 安装Cline插件 Cline插件…

C#的字符串之String类与StringBuilder类区别于适用场景

一、分清楚值类型与引用类型 正确理解值类型与引用类型&#xff0c;可以更好的帮助软件开发人员写出性能更好且正确稳定运行的程序&#xff1a; C#值类型与引用类型区别 区别值类型引用类型定义所有继承自【System.ValueType】类型的都是值类型&#xff08;valueType继承自Sys…

关于WPS的Excel点击单元格打开别的文档的两种方法的探究【为单元格添加超链接】

问题需求 目录和文件结构如下&#xff1a; E:\Dir_Level1 │ Level1.txt │ └─Dir_Level2│ Level2.txt│ master.xlsx│└─Dir_Level3Level3.txt现在要在master.xlsx点击单元格进而访问Level1.txt、Level2.txt、Level3.txt这些文件。 方法一&#xff1a;“单元格右键…

conda的基本使用及pycharm里设置conda环境

创建conda环境 conda create --name your_env_name python3.8 把your_env_name换成实际的conda环境名称&#xff0c;python后边的根据自己的需要&#xff0c;选择python的版本。 激活conda环境 conda activate your_env_name 安装相关的包、库 conda install package_name …

计算机网络-网络规划与设计

基本流程 需求分析—》通信规范分析—》逻辑网络设计—》物理网络设计—》实施阶段 需求分析&#xff1a; 确定需求&#xff0c;包括&#xff1a;业务需求、用户需求、应用需求、计算机平台需求、网络通信需求等。 产物&#xff1a;需求规范 通信规范分析&#xff1a; 现有…

六种最新优化算法(TOC、MSO、AE、DOA、GOA、OX)求解多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码

一、算法简介 &#xff08;一&#xff09;阿尔法进化&#xff08;Alpha Evolution&#xff0c;AE&#xff09;算法 阿尔法进化&#xff08;Alpha Evolution&#xff0c;AE&#xff09;算法是2024年提出的一种新型进化算法&#xff0c;其核心在于通过自适应基向量和随机步长的…

练习-依依的询问最小值(前缀和差分)

问题描述 依依有个长度为 n 的序列 a&#xff0c;下标从 1 开始。 她有 m 次查询操作&#xff0c;每次她会查询下标区间在[li​,ri​] 的 a 中元素和。她想知道你可以重新排序序列 a&#xff0c;使得这 m 次查询的总和最小。 求你求出 m 次查询总和的最小值。 输入格式 第…

ctfshow web刷题记录

RCE 第一题 eval代码执行 &#xff1a; 1、使用system 加通配符过滤 ?csystem("tac%20fl*") ; 2、反字节执行 xxx %20 echo 反字节 3、变量转移 重新定义一个变量 让他代替我们执行 4、伪协议玩法 ?cinclude$_GET[1]?>&1php://filter/readc…