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.rhkb.cn/news/34923.html

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

相关文章

沐数科技数据开发岗笔试题2025

描述性统计 标准差 答案: A 解析: 标准差 衡量数据集中数值变化或离散程度的一种度量。它反映了数据集中的各个数值与数据集的平均值(均值)之间的偏离程度。标准差越大,表明数据的分布越分散;标准差越小,表明数据…

ChatGPT-4

第一章:ChatGPT-4的技术背景与核心架构 1.1 生成式AI的发展脉络 生成式人工智能(Generative AI)的演进历程可追溯至20世纪50年代的早期自然语言处理研究。从基于规则的ELIZA系统到统计语言模型,再到深度学习的革命性突破&#x…

vulkanscenegraph显示倾斜模型(5.3)-相机

前言 在Vulkan中,相机的概念并非由API直接提供,而是由应用程序实现。相机的核心功能包括视图变换和投影变换:视图变换将世界坐标系中的物体转换到相机坐标系,投影变换则将相机坐标系中的物体转换到投影空间。在VSG(Vul…

【Pycharm】Pycharm无法复制粘贴,提示系统剪贴板不可用

我也没有用vim的插件,检查了本地和ubutnu上都没有。区别是我是远程到ubutnu的pycharm,我本地直接控制windowes的pycharm是没问题的。现象是可以从外部复制到pycharm反之则不行。 ctl c ctlv 以及右键 都不行 参考:Pycharm无法复制粘贴&…

MySQL 8 设置允许远程连接(Windows环境)

🌟 MySQL 8 设置允许远程连接(Windows环境) 在开发和部署应用时,经常需要从远程主机连接到MySQL数据库。默认情况下,MySQL仅允许本地连接,因此需要进行一些配置才能允许远程访问。今天,我将详细…

Prosys OPC UA Gateway:实现 OPC Classic 与 OPC UA 无缝连接

在工业自动化的数字化转型中,设备与系统之间的高效通信至关重要。然而,许多企业仍依赖于基于 COM/DCOM 技术的 OPC 产品,这给与现代化的 OPC UA 架构的集成带来了挑战。 Prosys OPC UA Gateway 正是为解决这一问题而生,它作为一款…

欢乐力扣:基本计算器

文章目录 1、题目描述2、思路代码括号 1、题目描述 基本计算器。  给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。  注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 2、思路 本人也不太会&#xff0c…

SVN学习笔记

svn:版本控制软件 解决:1.协作开发 2.远程开发 3.版本回退 服务端软件: VisualSVN http://www.visualsvn.com 客户端软件:Tortoisesvn http://tortoisesvn.net/downloads 1.checkout(检出) 第一查更新数据到本地, 2.update&#xf…

Mysql表的查询

一:创建一个新的数据库(companydb),并查看数据库。 二:使用该数据库,并创建表worker。 mysql> use companydb;mysql> CREATE TABLE worker(-> 部门号 INT(11) NOT NULL,-> 职工号 INT(11) NOT NULL,-> 工作时间 D…

[ISP] 人眼中的颜色

相机是如何记录颜色的,又是如何被显示器还原的? 相机通过记录RGB数值然后显示器显示RGB数值来实现颜色的记录和呈现。道理是这么个道理,但实际上各厂家生产的相机对光的响应各不相同,并且不同厂家显示器对三原色的显示也天差地别&…

Cursor插件市场打不开解决

问题现象: cursor搜索插件的时候提示错误,无法搜索安装插件 error while fetching extensions.failed to fetch 问题原因 cursor默认安装使用的并不是vs code的插件市场,国内网络有时候打不开 解决 修改插件市场地址并重启cursor 打开cur…

R 语言科研绘图 --- 密度图-汇总

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

安卓屏保调试

安卓屏保调试 - Wesley’s Blog 先看一下在设置点击屏保预览后的调用链(Android 14) #mermaid-svg-YQ66ef7zSvNutCCW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YQ66ef7zSvNutCCW .erro…

考研系列-408真题计算机网络篇(18-23)

写在前面 此文章是本人在备考过程中408真题计算机网络部分(2018年-2023年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2018 1.停止-等待协议的…

堆排序:力扣215.数组中的第K个大元素

一、问题描述 在一个整数数组 nums 中,需要找出第 k 个最大的元素。这里要注意,我们要找的是数组排序后的第 k 个最大元素,而不是第 k 个不同的元素。例如,对于数组 [3,2,1,5,6,4],当 k 2 时,第 2 个最大…

Qt-ZMQ的使用补充(pub-sub)

之前写过一篇Qt使用ZMQ的博客Qt网络编程-ZMQ的使用,本文是其的补充部分。 Linux上编译使用 首先这次实在Linux上进行演示,下载zmq源码,安装cmake,使用cmake进行编译。下载之后解压: 输入命令: cd ..mkdi…

一款基于Python的从常规文档里提取图片的简单工具开发方案

一款基于Python的从常规文档里提取图片的简单工具开发方案 1. 环境准备 安装必需库 pip install python-docx PyMuPDF openpyxl beautifulsoup4 pillow pip install pdfplumber # PDF解析备用方案 pip install tk # Python自带,无需安装工具选择 开发环…

日志存储与分析

日志是系统运行的详细记录,包含各种事件发生的主体、时间、位置、内容等关键信息。出于运维可观测、网络安全监控及业务分析等多重需求,企业通常需要将分散的日志采集起来,进行集中存储、查询和分析,以进一步从日志数据里挖掘出有…

cyberstrikelab lab2

lab2 重生之我是渗透测试工程师,被公司派遣去测试某网络的安全性。你的目标是成功获取所有服务器的权限,以评估网络安全状况。 先扫一下 ​ ​ 192.168.10.10 ​ ​ 骑士cms 先找后台路径 http://192.168.10.10:808/index.php?madmin&cind…

1.5.2 掌握Scala内建控制结构 - 块表达式

Scala的块表达式使用{}包裹语句组,单行语句不加分号,多语句用分号隔开。块表达式的结果是最后一行语句的值,无需单独写return。若无执行结果,则返回Unit对象(类似Java的void)。例如,有返回值时&…